我正在尝试实现字符串的简单加密。
我收到“提供的用户缓冲区对请求的操作无效”错误。 我不知道实施中的问题是什么。
以下是代码段。
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);
`
答案 0 :(得分:6)
toEncrypt
中数据的长度必须是算法块长度的倍数,除非您使用的是PKCS7填充,而您目前不是。您需要手动填充数据或使用PKCS7填充。
var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.aesEcbPkcs7);