在WP8上解密AES 128位RijndaelManaged

本文关键字:128位 RijndaelManaged AES 解密 WP8 | 更新日期: 2023-09-27 17:51:23

这段代码有点问题。

var symmetricKey = new RijndaelManaged { Mode = CipherMode.CBC, IV = iv, KeySize = 128, Key = keyBytes, Padding = PaddingMode.Zeros };
using (var decryptor = symmetricKey.CreateDecryptor())
using (var ms = new MemoryStream(cipherTextBytes))
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
    var plainTextBytes = new byte[cipherTextBytes.Length];
    int decryptedByteCount = cs.Read(plainTextBytes, 0, plainTextBytes.Length);
    return Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount);
}

问题在这里:

var symmetricKey = new RijndaelManaged { Mode = CipherMode.CBC, IV = iv,
                                         KeySize = 128, Key = keyBytes,
                                         Padding = PaddingMode.Zeros };

因为即使我包含了System.Security.Cryptography,它也找不到RijndaelManaed。上面写着:

"命名空间未找到。可能使用汇编引用"

"

事实上,当我添加using System.Security.Cryptography时,只有选项可用:

  • Pkcs
  • x509certificate
  • Xml>

我需要使用System.Security.Cryptography.RijndaelManaged

在WP8上解密AES 128位RijndaelManaged

看来。net for Windows Store Apps根本没有System.Security.Cryptography.RijndaelManaged

Windows.Security.Cryptography命名空间只有一个类:CryptographicBuffer

您必须使用SymmetricKeyAlgorithmProvider.OpenAlgorithm来选择对称加密算法。在这里,您将找到WinRT上所有对称算法支持的列表。