私はこのすべての暗号化のことについて全く新しく、与えられた文字列を暗号化するために単純なアプリケーションを実行しようとしています。ここに私のコードは次のとおりです。証明書を使用した暗号化
public static X509Certificate2 getPublicKey()
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
X509Certificate2 cert2 = new X509Certificate2("c:\\certificate.cer");
return cert2;
}
public static string cipherRequest(byte[] stringToEncrypt)
{
X509Certificate2 certificate = getPublicKey();
RSACryptoServiceProvider rsa = certificate.PublicKey.Key as RSACryptoServiceProvider;
byte[] cryptedData = rsa.Encrypt(stringToEncrypt, true);
return Convert.ToBase64String(cryptedData);
}
public static void Main()
{
try
{
ASCIIEncoding ByteConverter = new ASCIIEncoding();
byte[] test = ByteConverter.GetBytes("stringtoencrypt");
string first = cipherRequest(test);
string second= cipherRequest(test);
Console.WriteLine("first: {0}", first);
Console.WriteLine("second: {0}", second);
}
catch(CryptographicException e)
{
Console.WriteLine(e.Message);
}
}
だから私はcipherRequest
を呼び出すたびに、それは異なる結果を生成します。証明書がロードされていることを確認しましたが、結果が異なります。
どのような考えですか?
この動作は仕様です。実際の問題はありますか? – SLaks
なぜあなたは 'byte []'名前付き文字列を持っていますか? – SLaks