windows - UWP 中用于 Xamarin Forms 项目的 AES 加密

标签 windows xamarin cryptography uwp aes

我有几个简单的加密函数需要在 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/

相关文章:

java - RSA 加密(模数/指数)给出 "Message is larger than modulus"

c# - 如何从桌面应用程序中的 Windows Toast 通知接收文本框值?

linux - 使用 staf 将文件从 Linux 复制到远程 Windows 机器

java - ImageView 像另一个 ImageView Android 的边框

android - 来自 SVG 的 Android 和 iOS Assets

ios - Codesign 在 "replacing existing signature"后返回未知错误

email - 电子邮件的唯一标识符

php - 对于 OpenSSL ECC,我们可以拥有多个公钥和一个私钥吗?

r - future 的解决方案

windows - 如何在 Windows 7 上启用 FIPS