5

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

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

下面是代码片段。

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

`

4

1 回答 1

6

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

var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.aesEcbPkcs7);
于 2013-09-16T12:10:17.950 回答