Windows应用商店应用,加密,提供的用户缓冲区对请求的操作无效

时间:2013-09-16 11:09:38

标签: c# visual-studio-2012 encryption windows-8

我正在尝试实现字符串的简单加密。

我收到“提供的用户缓冲区对请求的操作无效”错误。 我不知道实施中的问题是什么。

以下是代码段。

var keyHash = GetMD5Hash(key);

var toDecryptBuffer = CryptographicBuffer.ConvertStringToBinary(toEncrypt, BinaryStringEncoding.Utf8);

var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesEcb);

var symetricKey = aes.CreateSymmetricKey(keyHash);

var buffEncrypted = CryptographicEngine.Encrypt(symetricKey, toDecryptBuffer, null);

`

1 个答案:

答案 0 :(得分:6)

toEncrypt中数据的长度必须是算法块长度的倍数,除非您使用的是PKCS7填充,而您目前不是。您需要手动填充数据或使用PKCS7填充。

var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.aesEcbPkcs7);