我需要使用RSA加密151 * 15大小的圖像。使用RSA加密圖像時出錯
這是java代碼加密圖像文件
import javax.crypto.Cipher;
plaintext = time;
cipher = Cipher.getInstance('RSA');
keygen = java.security.KeyPairGenerator.getInstance('RSA');
keyPair = keygen.genKeyPair();
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate())
plaintextUnicodeVals = uint16(plaintext)
plaintextBytes = typecast(plaintextUnicodeVals, 'int8')
ciphertext = cipher.doFinal(plaintextBytes);
這是要加密
我得到了folllowing出錯
Java異常圖像文件:
javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
at com.sun.crypto.provider.RSACipher.a(DashoA13*..)
at com.sun.crypto.provider.RSACipher.engineDoFinal(DashoA13*..)
at javax.crypto.Cipher.doFinal(DashoA13*..)
請給我提示或程序,以便我可以正確的方向。
謝謝
我沒有看到在加密文本的圖像,而不是僅僅加密文本(這顯然是低於117個字節)的值。你能在這個思考過程中啓發我嗎? – 2012-03-26 17:31:02
不要刪除重新提出幾乎相同的問題。 – CodesInChaos 2012-03-26 17:40:35
@CoreyOgburn我用matlab將圖像讀入矩陣X.它的大小是151 * 15 = 2265。然後我將矩陣X變換成1 * 2265的行向量,它是給定代碼中的時間輸入。 – shree 2012-03-26 17:41:44