C# AES/CBC/PKCS5P在windows应用商店应用程序中添加
我正在windows 8.1中开发一个应用程序,我想对“AES/CBC/PKCS5P”中加密的图像进行解密 我使用了“SymmetricalGorthmNames.AESCBCCPKCS7”进行解密,但我得到一个错误“提供的用户缓冲区对于请求的操作无效。(HRESULT的异常:0x800706F8)” 请帮助我如何摆脱这个错误 如果我用一个样本检查正常图像,我使用“SymmetricalGorthmNames.aescbccpkcs7”使用我的方法进行加密和解密,它工作正常,但在服务器中使用“AES/CBC/PKCS5Padding”加密的图像没有正确解密C# AES/CBC/PKCS5P在windows应用商店应用程序中添加,c#,windows,cryptography,windows-8.1,C#,Windows,Cryptography,Windows 8.1,我正在windows 8.1中开发一个应用程序,我想对“AES/CBC/PKCS5P”中加密的图像进行解密 我使用了“SymmetricalGorthmNames.AESCBCCPKCS7”进行解密,但我得到一个错误“提供的用户缓冲区对于请求的操作无效。(HRESULT的异常:0x800706F8)” 请帮助我如何摆脱这个错误 如果我用一个样本检查正常图像,我使用“SymmetricalGorthmNames.aescbccpkcs7”使用我的方法进行加密和解密,它工作正常,但在服务器中使用“A
Uri dataUri = new Uri("ms-appx:///Assets/EncryptedImage.jpg");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
string key = "123456";
IBuffer toDecryptBuffer = await FileIO.ReadBufferAsync(file)
SymmetricKeyAlgorithmProvider aesCbcPkcs7 =
SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
var keyHash = GetMD5Hash(key);
var symetricKey = aesCbcPkcs7.CreateSymmetricKey(keyHash);
IBuffer iv = CryptographicBuffer.GenerateRandom(aesCbcPkcs7.BlockLength);
IBuffer buffDecrypted = CryptographicEngine.Decrypt(symetricKey, toDecryptBuffer , iv);
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
var Newfile = await local.CreateFileAsync("Decrypted.jpg", CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteBufferAsync(Newfile, buffDecrypted);
AES/CBC/PKCS5Padding很奇怪,因为PKCS5使用8字节块,而AES使用16字节块,所以肯定发生了其他事情。就目前而言,您似乎是在用随机生成的IV解密?相反,你需要用原来的IV解密。嗨…我试了两天,但我没有得到,实际上我使用的是IV null。你认为这取决于静脉注射吗?我将IV设置为空,但仍然尝试了,它仍然会产生相同的错误。您知道关于在Windows 8.1应用商店应用程序中加密图像和解密图像的教程吗?