RSA-шифрование и дешифрование в MVC3 - PullRequest
2 голосов
/ 14 октября 2011

Пожалуйста, помогите мне в следующем выпуске.

 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-содержимое. Зашифрованное содержимое хранится с открытым и закрытым ключами, тот же ключ получает из БД при его вызове, но дешифрование не работает должным образом - только половина исходная строка генерируется и останавливается с помощью специальных символов

Заранее спасибо !!!!

1 Ответ

1 голос
/ 18 октября 2011

Я узнал, что при передаче данных из MVC3 в SQLServer передаваемая строка не отправляется должным образом, когда мы используем SaveOrUpdate () в Nhibernate.

Итак, я получил идентификатор текущей вставленной записи и обновил строку с помощью запроса на обновление.

:) :) Удачного кодирования .. !!!!!

...