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)
`
toEncrypt除非您使用的是PKCS7填充,否则数据的长度必须是算法块长度的倍数.您需要手动填充数据或使用PKCS7填充.
var aes = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.aesEcbPkcs7);
Run Code Online (Sandbox Code Playgroud)