问题描述
我正在尝试使用客户端提供的以下密钥来加密字符串
public static string EncryptKey()
{
var word = "9999";
var key = "Z1UbeuBT7Uu3SZinrq0vzuDVXBU5FbiKksopJswQGk81";
var iv = "KUNd9fhw48li2WUZ";
byte[] result = null;
byte[] wordBytes = Encoding.UTF8.GetBytes(word);
using (MemoryStream ms = new MemoryStream())
{
using (RijndaelManaged AES = new RijndaelManaged())
{
AES.Key = Convert.FromBase64String(key);
AES.IV = Encoding.UTF8.GetBytes(iv);
using (var cs = new CryptoStream(ms,AES.CreateEncryptor(),CryptoStreamMode.Write))
{
cs.Write(wordBytes,wordBytes.Length);
cs.Close();
}
byte[] encryptedBytes = ms.ToArray();
result = encryptedBytes;
return Convert.ToBase64String(result);
}
}
}
System.Security.Cryptography.CryptographicException:'指定的密钥对此算法无效。
客户端一直在使用此密钥。
我在做什么错了?
解决方法
我的客户使用
HttpServerUtility.UrlTokenDecode(string input);
用于解码base64字符串。
希望这对以后的人有帮助。