RSAで任意のテキストを暗号化したいのですが、RSAでは長いテキストを許可しないので、まずAES-256で暗号化する必要があります)、次にAESキーをRSA publicで暗号化し、暗号化されたテキスト(AES付き)を追加してメッセージを送信します。AES暗号化復号化が正しく機能していません--Android
この時点で、私はAES enc-decをやっています。
まず、私はAES鍵生成:メッセージを正しく復号化されていないので、しかし、私は何か間違ったことをやっている
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey_AES);
byte[] encrypted = cipher.doFinal(message.getBytes("UTF-8"));
String encryptedMessage = Base64.encodeToString(encrypted, Base64.DEFAULT);
return encryptedMessage;
、最終的には私が解読:
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(KEY_SIZE_AES);
this.secretKey_AES = keyGenerator.generateKey();
return this.secretKey_AES;
は、私がメッセージを暗号化しますそれ:
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey_AES);
byte[] decrypted = cipher.doFinal(Base64.decode(message,Base64.DEFAULT));
String decryptedMessage = new String(Base64.encode(decrypted, Base64.DEFAULT));
return decryptedMessage;
ただし、復号化されたテキストは元のものと同じではありません。私は何かが欠けている? または私はいくつかのステップを忘れていますか?
例:
' Cipher.getInstance(「AES」)のために動作することを注意して
を変更問題。常に "alg/mode/padding"仕様を完全に提供してください。 –
ありがとう、私は月曜日に変更します;) – Shudy