【发布时间】:2016-04-25 14:57:31
【问题描述】:
当应用未在 Microsoft Store 上发布时,此代码运行良好。但发布后给出“填充无效且无法删除”错误。 检查所有密钥和盐 IV 并且相同。有什么问题请帮忙。或建议其他代码。它是手机 8.1 和 windows mobile 10.0 应用程序。 源文件在 SD 卡中,目标文件在应用程序的本地文件夹中。
int Iterations = 1000;
AesManaged aes = new AesManaged();
aes.BlockSize = aes.LegalBlockSizes[0].MaxSize;
aes.KeySize = aes.LegalKeySizes[0].MaxSize;
byte[] salt = GetBytes(SaltKey);
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(SKey, salt, Iterations);
aes.Key = key.GetBytes(aes.KeySize / 8);
aes.IV = key.GetBytes(aes.BlockSize / 8);
ICryptoTransform transform = aes.CreateDecryptor(aes.Key, aes.IV);
try
{
using (FileStream dest = new FileStream(destFilename, FileMode.CreateNew, FileAccess.Write, FileShare.None))
{
using (CryptoStream cryptoStream = new CryptoStream(dest, transform, CryptoStreamMode.Write))
{
using (FileStream source = new FileStream(srcFilename, FileMode.Open, FileAccess.Read, FileShare.Read))
{
source.CopyTo(cryptoStream);
}
}
}
}
catch (Exception exception)
{
//return "Decryption failed : " + exception.Message.ToString();
System.Diagnostics.Debug.WriteLine("Decryption failed : " + exception.Message.ToString());
//throw new ApplicationException("Decryption failed.", exception);
MessageBox.Show("Decryption failed : " + exception.Message.ToString());
}
【问题讨论】:
标签: c# windows encryption visual-studio-2013 aes