【问题标题】:AES Encryption in UWP for Xamarin Forms projectXamarin Forms 项目的 UWP 中的 AES 加密
【发布时间】: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 中无法运行。

谢谢!

【问题讨论】:

标签: windows xamarin cryptography uwp aes


【解决方案1】:

虽然 AesManaged 在 .NET Core 1.0 或 1.1 中不可用,但 Aes.Create() 可用。如果你更换

AesManaged myAes = new AesManaged();

Aes myAes = Aes.Create();

一切都只适用于 .NET Core / UWP 包。

【讨论】:

  • 感谢 bartonjs,但我忘了说这是一个跨平台的 Xamarin Forms 应用程序,所以显然没有 .NET Core。 :-( 如果我可以使用你的解决方案,那将是一个很棒的解决方案!谢谢。
猜你喜欢
  • 2016-12-02
  • 2017-05-02
  • 2017-01-14
  • 2018-11-06
  • 2021-11-25
  • 2019-07-24
  • 2018-02-01
  • 2021-10-13
  • 1970-01-01
相关资源
最近更新 更多