Android アプリケーションに問題があります。RSA暗号化/復号化に関連するアプリを試しています.これは私の問題です:
短い文を明確に暗号化できますが、このメッセージを元のテキストに復号化しようとすると、エラーが発生します (「RSA ブロックにはデータが多すぎます」)。また、長い文を暗号化したい場合も同じエラーが発生します。この問題を検索したところ、次のサイトで解決策が見つかりました。
しかし、私は何も理解していません.これらの解決策はとても複雑です.どうすればこの問題を解決できますか.もっと簡単な解決策を教えてもらえますか? ありがとうございました。
編集: これらは、このプロジェクトで使用するコード ブロックです。
public String RSAEncrypt(String plain) throws NoSuchAlgorithmException, NoSuchPaddingException,InvalidKeyException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException, UnsupportedEncodingException {
publicKey = getPublicKey();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherData = cipher.doFinal(plain.getBytes());
return Base64.encodeToString(cipherData, Base64.DEFAULT);
}
public String RSADecrypt(byte[] encryptedBytes) throws NoSuchAlgorithmException, NoSuchPaddingException,InvalidKeyException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException, UnsupportedEncodingException {
privateKey = getPrivateKey();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] cipherData = cipher.doFinal(encryptedBytes);
return Base64.encodeToString(cipherData, Base64.DEFAULT);
}