我有一些简单的加密功能,我需要在Windows 10的新UWP应用中使用。由于UWP中没有AesManaged,我已经看过Windows.Security.Cryptography.Core docs和帖子在这里,但似乎无法让它工作。例如,我还没有找到设置填充的位置。这两个函数也使用字节数组中的密钥加密和解密字节数组缓冲区的内容。
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。
谢谢!
答案 0 :(得分:2)
虽然.NET Core 1.0或1.1中没有AesManaged
,但Aes.Create()
可用。如果你替换
AesManaged myAes = new AesManaged();
与
Aes myAes = Aes.Create();
所有内容都适用于.NET Core / UWP软件包。