7

Android アプリケーションに問題があります。RSA暗号化/復号化に関連するアプリを試しています.これは私の問題です:

短い文を明確に暗号化できますが、このメッセージを元のテキストに復号化しようとすると、エラーが発生します (「RSA ブロックにはデータが多すぎます」)。また、長い文を暗号化したい場合も同じエラーが発生します。この問題を検索したところ、次のサイトで解決策が見つかりました。

サイト 1

サイト 2

サイト 3

しかし、私は何も理解していません.これらの解決策はとても複雑です.どうすればこの問題を解決できますか.もっと簡単な解決策を教えてもらえますか? ありがとうございました。

編集: これらは、このプロジェクトで使用するコード ブロックです。

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);
}
4

2 に答える 2