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 также не должны измениться?