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

use*_*095 5 c# encryption windows-8 visual-studio-2012

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

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

以下是代码段.

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);
Run Code Online (Sandbox Code Playgroud)

`

San*_*nen 6

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

var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.aesEcbPkcs7);
Run Code Online (Sandbox Code Playgroud)