using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace EncryptionTest
{
class Program
{
static void Main(string[] args)
{
UnicodeEncoding ByteConverter = new UnicodeEncoding();
byte[] dataToEncrypt = ByteConverter.GetBytes("Test data");
string enc = Encrypt(dataToEncrypt);
}
static string Encrypt(byte[] data)
{
UnicodeEncoding ByteConverter = new UnicodeEncoding();
RSACryptoServiceProvider encrypt = new RSACryptoServiceProvider();
byte[] encryptedData = encrypt.Encrypt(data, false); //Repeat this line
return ByteConverter.GetString(encryptedData);
}
}
}
「次のステートメントを設定」を使用して、次のステートメントを繰り返し実行しました。つまり、他のコード行を実行しませんでした。
byte[] encryptedData = encrypt.Encrypt(data, false);
encryptedData のバイトを調べたところ、encryptedData のバイトが毎回変化することがわかりました。さすがにこれはまずい?公開鍵が変更されておらず、暗号化されるデータが変更されていない場合、「encryptedData」バイトも変更されるべきではありませんか?