Пожалуйста, помогите мне в следующем выпуске.
RSAEncryptionAndDecryption rsaEncDec = new RSAEncryptionAndDecryption(document.PublicKey, document.PublicAndPrivateKey);
string reportContent = rsaEncDec.Decrypt(document.Report).OriginalData;
Когда я использую вышеуказанный код в MVC1, расшифровка работает правильно, но тот же код не может расшифровать исходную строку в MVC3.
Код шифрования:
RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider(bitStrength);
rsaCryptoServiceProvider.FromXmlString(publicKey);
int keySize = bitStrength / 8;
byte[] dataToEnc = Encoding.UTF32.GetBytes(inputData);
int maxLength = keySize - 42;
int dataLength = dataToEnc.Length;
int iterations = dataLength / maxLength;
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i <= iterations; i++)
{
byte[] tempBytes = new byte[(dataLength - maxLength * i > maxLength) ? maxLength : dataLength - maxLength * i];
Buffer.BlockCopy(dataToEnc, maxLength * i, tempBytes, 0, tempBytes.Length);
byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt(tempBytes, true);
Array.Reverse(encryptedBytes);
stringBuilder.Append(Convert.ToBase64String(encryptedBytes));
}
При сохранении закодированной строки в базе данных, половина зашифрованной строки сохраняется, в связи с чем возникает ошибка.
Закодированная строка обрезается при сохранении в БД, это происходит только тогда, когда я использую MVC3, а не MVC1.
Я шифрую html-содержимое. Зашифрованное содержимое хранится с открытым и закрытым ключами, тот же ключ получает из БД при его вызове, но дешифрование не работает должным образом - только половина исходная строка генерируется и останавливается с помощью специальных символов
Заранее спасибо !!!!