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

我正在尝试实现一个简单的字符串加密.我收到“提供的用户缓冲区对请求的操作无效”错误.我不知道实现中的问题是什么.以下是代码段.var keyHash = GetMD5Hash(key);var toDecryptBuffer = CryptographicBuffer.Conv...

我正在尝试实现一个简单的字符串加密.

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

以下是代码段.

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);

`

解决方法:

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

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

本文标题为:c# – Windows应用商店,加密,提供的用户缓冲区对请求的操作无效

基础教程推荐