我有几个简单的加密函数需要在 Windows 10 的新 UWP 应用程序中使用。由于 AesManaged 在 UWP 中不可用,我查看了 Windows.Security.Cryptography.Core 文档和此处的帖子,但似乎无法让它发挥作用。例如,我还没有找到设置填充的位置。这两个函数使用也在字节数组中的 key 对字节数组缓冲区的内容进行加密和解密。
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 应用程序中运行,我们将不胜感激。此代码用于与现有硬件 Controller 通信,因此我无法更改内容以提高安全性。
此外,这是针对 Xamarin Android/iOS/UWP 项目的,因此据我所知,不幸的是,.NET Core 不是一个选项。原始代码在 Android/iOS 中运行良好,但在 UWP 中运行不正常。
谢谢!
最佳答案
虽然 AesManaged
在 .NET Core 1.0 或 1.1 中不可用,但 Aes.Create()
可用。如果你更换
AesManaged myAes = new AesManaged();
与
Aes myAes = Aes.Create();
一切都将只适用于 .NET Core/UWP 包。
关于windows - UWP 中用于 Xamarin Forms 项目的 AES 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020198/