簡體   English   中英

如何在圖像位中設置標志以標記音頻文件的結尾

[英]How to set a flag in image bits to mark the end of an audio file

目前,我正在嘗試將波形格式的音頻文件隱藏在位圖格式的圖像中。

我將它們都轉換為二進制形式,現在我試圖設置某種標記來標記音頻文件的結尾,以便從圖像中提取音頻時,我知道該從哪里停止。

注意事項1:圖像為24bit。

2:音頻數據為PCM 16位。

3:我使用的是LSB,所以音頻的每個16位至少需要5個像素和第6個像素的元素(5 * 3 = 15 +1 = 16)。

沒錯,您不能依靠文件結束標記是正確的,因為所有字節值都可能在您的字節流中。 因此,您必須使用標題。 必須明確地實現這一點,以便解碼器知道在哪里以及如何尋找以提取其信息。 這簡單地轉換為在消息的開頭具有標題,在這種情況下,將其設置為固定大小是很方便的,盡管不是必需的。

如果您的消息可以大於65536位,那么您的消息大小顯然將需要超過16位,例如32位。 現在,您可能會爭辯說,如果要嵌入很小的消息,則32位消息大小標頭的開頭將有太多零,這將是過大的。 但是,即使您打算嵌入1 kB的數據,額外的32位也幾乎不會增加任何額外的噪聲。

根據Kerckhoff的原理 ,您確實應該假定攻擊者完全了解您的方案,並且如果您以靜態方式嵌入消息,那么對於他們來說,提取消息應該很簡單。 取而代之的是,您可以使用密碼或密鑰作為PRNG的種子,然后使用它來改變像素的順序。 例如,讓我們分別用數字1-3調用第一個像素的RGB分量,並用4-6調用第二個像素的RGB分量。 通過生成數組[1, 2, 3, 4, 5, 6]並對其進行改組,可以得到順序[4, 3, 2, 6, 5, 1] 4、3、2、6、5、1 [4, 3, 2, 6, 5, 1] 因此,當您嵌入秘密(包括消息大小)時,第一位隱藏在第二個像素的紅色部分中,第二位隱藏在第一個像素的藍色部分中,以此類推。沒人可以說這是“可見”,因為如果沒有正確的像素順序,他們將無法有意義地提取郵件。

但是,您必須記住,隱寫術是將信息隱藏在另一種介質中的藝術, 甚至沒有人懷疑它的存在 相比之下,加密是關於公開傳輸您的消息的,但是加密的方式是只有目標參與者才能知道其內容。 對於隱寫術而言,這意味着不必一定要提取您的信息來破壞其目的。 您因只是秘密地嘗試傳輸信息而感到沮喪,無論其內容是否可讀。 您知道LSB像素修改方法已損壞,因此嘗試使其稍微更安全是沒有意義的。 相反,您只需要擔心使用該方法弄臟您的手並學到一些有關隱寫術的知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM