我先贴上 在wpf中的加密方法 代码正常可运行
引用 using System.Security.Cryptography;
/// <summary>
/// AES解密
/// </summary>
/// <param name="cipherText">密文字节数组</param>
/// <param name="strKey">密钥</param>
/// <returns>返回解密后的字符串</returns>
public static byte[] AESDecrypt(string desstring, string strKey, byte[] _key1)
{
try
{
byte[] cipherText = Convert.FromBase64String(desstring);
int len = desstring.Length / 2;
SymmetricAlgorithm des = Rijndael.Create(); SymmetricAlgorithm.Create();
des.Key = Encoding.UTF8.GetBytes(strKey);
des.IV = _key1;
byte[] decryptBytes = new byte[len];
MemoryStream ms = new MemoryStream(cipherText);
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read);
cs.Read(decryptBytes, 0, decryptBytes.Length);
cs.Close();
ms.Close();
return decryptBytes;
}
catch
{
return null;
}
}
/// <summary>
/// AES加密算法
/// </summary>
/// <param name="plainText">明文字符串</param>
/// <param name="strKey">密钥</param>
/// <returns>返回加密后的密文字节数组</returns>
public static byte[] AESEncrypt(string plainText, string strKey, byte[] _key1)
{
try
{
//分组加密算法
SymmetricAlgorithm des = Rijndael.Create();
byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText);//得到需要加密的字节数组
//设置密钥及密钥向量
des.Key = Encoding.UTF8.GetBytes(strKey);
des.IV = _key1;
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
byte[] cipherBytes = ms.ToArray();//得到加密后的字节数组
cs.Close();
ms.Close();
return cipherBytes;
}
catch
{
return null;
}
}
因为现在这个程序要做一个 windows phone 7版的 由于服务器的加密解密都是用此类方法 (不要说去改服务器的方法 我也考虑过 但是 由于客户端好多版本 比如苹果 安卓 pc 等版本 都要改就很麻烦了)
请各位帮忙看下 windows phone 7 的问题
无法引用 using System.Security.Cryptography;
找不到 Rijndael.Create();这个方法
------解决方案--------------------------------------------------------
找个第三方的,看看