私はRSA公開鍵のバイト配列を持っています。私はこのコードを使用することによって、それの本当の公開鍵オブジェクトを作成することができ、インターネット上のが見つかりました:Java:文字列からRSA公開鍵を作成する方法
PublicKey publicKey =
KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));
しかし、私はこのコードを実行するたびに、私はその鍵を使って暗号化されたデータのための別の結果を取得しています。私は暗号化したいデータは常に同じであると確信していますので、キーを表すバイト配列も同じです。
これは正常ですか?
byte[] keyBytes = Base64.decodeBase64(rsa_1024_public_key);
// rsa_1024_public key is a constant String
Cipher c = Cipher.getInstance("RSA");
PublicKey publicKey =
KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes));
c.init(Cipher.ENCRYPT_MODE, publicKey);
return c.doFinal(password.getBytes());
これはおそらく、非対称暗号化アルゴリズムの一部である:ここで
は私のコードは、常に他の出力を生成していますか?ありがとうございました。
RSAは非決定性です。 – SLaks
@SLaks:答えとして投稿しますか?それは正しいです:私は35ポイントを与えるでしょう。 –
実際、15;私はずっと前に代表制限を打った。 :) – SLaks