【发布时间】:2017-10-16 15:23:38
【问题描述】:
我有几个简单的加密功能需要在适用于 Windows 10 的新 UWP 应用程序中使用。由于 AesManaged 在 UWP 中不可用,因此我查看了 Windows.Security.Cryptography.Core 文档和帖子,但似乎无法让它工作。例如,我还没有找到在哪里设置填充。这两个函数使用字节数组中的密钥加密和解密字节数组缓冲区的内容。
byte[] Buffer;
private void EncryptBuff(byte[] sessionKey)
{
AesManaged myAes = new AesManaged();
myAes.Mode = CipherMode.ECB;
myAes.KeySize = 128;
myAes.Key = sessionKey;
myAes.Padding = PaddingMode.Zeros;
ICryptoTransform encryptor = myAes.CreateEncryptor();
Buffer = encryptor.TransformFinalBlock(Buffer, 0, Buffer.Length);
}
private void DecryptBuff(byte[] sessionKey)
{
AesManaged myAes = new AesManaged();
myAes.Mode = CipherMode.ECB;
myAes.KeySize = 128;
myAes.Key = sessionKey;
myAes.Padding = PaddingMode.Zeros;
ICryptoTransform decryptor = myAes.CreateDecryptor();
Buffer = decryptor.TransformFinalBlock(Buffer, 0, Buffer.Length);
}
任何帮助翻译它以在 UWP 应用程序中运行将不胜感激。此代码用于与现有硬件控制器通信,因此我无法更改任何内容以提高安全性。
此外,这是针对 Xamarin Android/iOS/UWP 项目的,所以据我所知,不幸的是,.NET Core 不是一个选项。原始代码在 Android/iOS 中运行良好,但在 UWP 中无法运行。
谢谢!
【问题讨论】:
-
stackoverflow.com/a/41714595/3888657 看看这个答案。您可以通过 AlgorithmName 更改模式/填充。
标签: windows xamarin cryptography uwp aes