Выполнение некоторого шифрования и дешифрования и обнаружение «System.Security.Cryptography.CryptographicException: 'ЗапC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Выполнение некоторого шифрования и дешифрования и обнаружение «System.Security.Cryptography.CryptographicException: 'Зап

Сообщение Anonymous »

Это мнение. При отправке данные шифруются. Нет проблем.:

Код: Выделить всё


Name:


Address:


Encrypt and Submit

@ViewBag.Display


Это сценарий в представлении:

Код: Выделить всё


function encryptAndSubmit() {
var name = document.getElementById("Name").value;
var address = document.getElementById("Address").value;
var key = "@ViewBag.Key";
var iv = "@ViewBag.IV";

var encryptedName = encrypt(name, key, iv);
var encryptedAddress = encrypt(address, key, iv);

document.getElementById("Name").value = encryptedName;
document.getElementById("Address").value = encryptedAddress;
}

function encrypt(plainText, key, iv) {
var keyBytes = CryptoJS.enc.Utf8.parse(key);
var ivBytes = CryptoJS.enc.Utf8.parse(iv);
var encrypted = CryptoJS.AES.encrypt(plainText, keyBytes, {
iv: ivBytes,
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});

return encrypted.toString();
}
И контроллер.:

Код: Выделить всё

    private readonly byte[] _key;
private readonly byte[] _iv;

public PermitController()
{
var rng = new RNGCryptoServiceProvider();

_key = new byte[32];
rng.GetBytes(_key);

_iv = new byte[16];
rng.GetBytes(_iv);
}

public async Task Encryptori()
{
ViewBag.Display = "";
ViewBag.Key = Convert.ToBase64String(_key);
ViewBag.IV = Convert.ToBase64String(_iv);
ApplicationUser user = await _userManager.GetUserAsync(User);
return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task Encryptori(IFormCollection collection)
{
string TheKey = collection["Key"];
string TheIv = collection["IV"];
var keyBytes = Convert.FromBase64String(TheKey);
var ivBytes = Convert.FromBase64String(TheIv);

string encryptedName = collection["Name"];
string encryptedAddress = collection["Address"];

var decryptedName = Decrypt(encryptedName, TheKey, TheIv);
var decryptedAddress = Decrypt(encryptedAddress, TheKey, TheIv);

// Store the decrypted data in the ViewBag
ViewBag.Display = encryptedName + "  and  "  + encryptedAddress;

ApplicationUser user = await _userManager.GetUserAsync(User);
return View();
}

private string Decrypt(string encryptedText, string key, string iv)
{
try
{
var keyBytes = Convert.FromBase64String(key);
var ivBytes = Convert.FromBase64String(iv);

using (var aes = Aes.Create())
{
aes.Key = keyBytes;
aes.IV = ivBytes;
aes.Padding = PaddingMode.PKCS7;
aes.Mode = CipherMode.ECB;

var decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Write))
{
var encryptedBytes = Convert.FromBase64String(encryptedText);
cs.Write(encryptedBytes, 0, encryptedBytes.Length);
}
ms.Position = 0;
var decryptedBytes = new byte[ms.Length];
ms.Read(decryptedBytes, 0, decryptedBytes.Length);
return Encoding.UTF8.GetString(decryptedBytes);
}
}
}
catch (CryptographicException ex)
{
Console.WriteLine("Decryption failed: " + ex.Message);
return null;
}
}
Я пробовал менять разные режимы заполнения, но все равно. По-прежнему возникает исключение System.Security.Cryptography.CryptographicException: «Заполнение недопустимо и не может быть удалено. Как вы можете видеть, оба заполнения режима «pkcs7» «ECB» идентичны в Js и контроллере.

Подробнее здесь: https://stackoverflow.com/questions/788 ... yptography
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# System.Security.Cryptography.CryptographicException: «Неизвестная ошибка (0xc100000d)»
    Anonymous » » в форуме C#
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Получить System.Security.Cryptography.CryptographicException при расшифровке
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Получить System.Security.Cryptography.CryptographicException при расшифровке
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Получить System.Security.Cryptography.CryptographicException при расшифровке: указанный вектор инициализации (IV) не соо
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • PrivateKey выдал исключение типа System.Security.Cryptography.CryptographicException
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»