私は RSA 暗号化が初めてで、.Net のSystem.Security.Cryptography
.
public String Encryption(Byte[] Input, RSAParameters PublicKey)
{
RSAC = new RSACryptoServiceProvider();
RSAC.ImportParameters(PublicKey);
Byte[] Encrypt = RSAC.Encrypt(Input, false);
return Convert.ToBase64String(Encrypt);
}
上記のコードを使用すると、アプリケーションを再起動するたびに、同じ入力に対して別の暗号化された文字列が取得されます。これが正常な動作であるかどうか、そうでない場合はそれを防ぐ方法を知りたいです。
たとえば、プログラムは入力 "Hello" に対して次の文字列を返します。
NopDAF5FRu....
アプリケーションを再起動すると、同じ入力に対する出力は次のようになります。
pPPu8x6....
ただし、RSA 暗号化クラスの新しいオブジェクトを作成すると、すべてのオブジェクトが同じ出力を返します。