我正在做'隱寫術'中的一個項目,我想用'Blowfish'算法對文件內容進行加密,然後想要在圖像中嵌入加密文本,並執行相反的過程來提取圖像。
'Cipher'類中的'update'方法僅加密一些編號。的字節,但是,在這裏我只需要一個數組中的文件的所有字節(加密內容)。 「解密」中的「更新」方法也是如此。這個數組稍後將被傳遞給一個方法,在該方法中我將文本嵌入到圖像中,並在需要時進行提取。對於這個問題,更好的方法是什麼?
謝謝。如何追加no。的字節數組到字節數組?
1
A
回答
5
大多數密碼是流式密碼。他們可以在數據加密/解密時獲取數據並流出結果。 Java Cipher類以這種方式工作。您用一塊數據調用update(..),並返回一個加密數據塊。當你到達輸入數據的末尾時,你調用final(...)方法。
現在,如果您希望將所有數據累積到一個二進制緩衝區中,並且一次加密它,那麼也可以正常工作。但最終,無論哪種方式都行得通,密碼並不關心它是否一次加密1個字節,或者每次加密1MB。
如果您只是想知道如何附加字節數組,您只需創建一個長度等於您想要附加的數組大小之和的新字節數組,然後使用System.arraycopy移動複製原始數據陣列。
byte[] newbuf = new byte[oldbuf1.length + oldbuf2.length];
System.arraycopy(oldbuf1, 0, newbuf, 0, oldbuf1.length);
System.arraycopy(oldbuf2, 0, newbuf, oldbuf1.length, oldbuf2.length);
如果你打算做了很多,你有空閒時間,最好是積累的數據塊中不同的字節的緩衝區,在列表他們的東西,然後做內存的最終合併一次。
int sum = 0;
for(byte[] ba : arraysList) {
sum = sum + ba.length;
}
byte[] newbuf = new byte[sum];
int curpos = 0;
for(byte[] ba : arraysList) {
System.arraycopy(ba, 0, newbuf, curpos, ba.length);
curpos = curpos + ba.length;
}
(代碼沒有測試,應該工作,不認爲有任何1權衡在那裏。)
相關問題
- 1. 追加字節數組
- 2. 追加到在C字節數組++
- 3. 追加字節數組到StringBuilder
- 4. 如何將字節數組追加到已存在的StorageFile中?
- 5. 在彈性字節數組中追加字節陣列
- 6. 字節數組到
- 7. 將字節複製到字節數組?
- 8. 將字節插入到字節數組
- 9. 創建從字節數組,得到這樣的字節數組
- 10. 單字節數組到C#中的2d字節數組?
- 11. 如何將Java字節數組轉換爲Scala字節數組?
- 12. 如何比較字節數組和字節數組列表?
- 13. 加密字符串到字節數組
- 14. 數組字節[]
- 15. 將字節數組轉換回字節數組返回字節數組
- 16. 如何使用Go追加兩個[]字節的片或數組?
- 17. 如何從字節數組
- 18. 將字節數組串連到字節數組
- 19. 字節數組加倍
- 20. 添加值字節數組
- 21. 將String字節數組的一部分追加到StringBuilder中
- 22. 如何追加切片字節數組中golang
- 23. Unsafe.As從字節數組到ulong數組
- 24. 對象數組到字節數組
- 25. Python字節數組到位數組
- 26. 將單個字節附加到VB.NET中的字節數組中
- 27. 如何從字節數組中的字節數組開始提取字節不在字節邊界c#
- 28. 位數組到字節 - java
- 29. 流PDF到字節數組
- 30. 字節數組到變體
@Will哈同:謝謝。這個想法終於奏效了。我用這個'加密'。 :) – Supereme 2010-11-08 05:46:34