2012-08-22 40 views
2

我想加密圖像,然後對其進行解密。是否有任何好的參考或教程或示例顯示如何將圖像轉換爲字符串,然後加密字符串?或者有其他方法來加密圖像?由於我是這個新手,而且我也去了搜索,但沒有任何簡單的例子讓我理解和遵循。將圖像(png)轉換爲字符串,然後對圖像進行加密

如果我沒有錯,我必須使用FileInputstream和ImageIO,但我不知道它是如何完全工作的。任何人都可以指導我?謝謝

回答

6

圖像是一個二進制文件,所以我認爲它不是很有意義轉換爲字符串進行加密的目的。這會增加相當多的開銷和複雜性,不會帶來額外的好處。

你應該直接加密二進制文件。

參見:

+0

的圖像加密後,結果會怎樣?它是不是可以查看圖像?要麼..? – Twister

1

如果你的問題是「我如何在Java中執行加密」,再看看一些東西,我已經寫上Java cryptography,在partcular的有關symmetric key encryption的部分。從本質上講,你創造一些祕密密鑰,它可以只是使用SecureRandom的生成隨機字節的字符串:

byte[] key = new byte[16]; 
(new SecureRandom()).nextBytes(key); 

然後你構造的Cipher對象,並用鑰匙初始化,然後通過它,你需要加密數據:

public byte[] encryptData(byte[] key, byte[] data) { 
    Cipher c = Cipher.getInstance("AES/CTR/PKCS5PADDING"); 
    byte[] initialCounter = new byte[16]; 
    c.init(Cipher.ENCRYPT_MODE, 
    new SecretKeySpec(key, "AES"), 
    new IvParameterSpec(initialCounter)); 
    byte[] encryptedData = c.doFinal(plaintextData); 
    return encryptedData; 
} 

沒有什麼必然有關加密的image--它只是一堆喜歡在這一天結束別的字節很特別。

密碼學的主要問題在於,您需要了解各種細節以確保其安全。

這裏這個鏈接也可以幫助你很多:

NB你不會需要將其轉換爲String更像是一個字節陣列 -