我用于 AES 加密 C# 的密钥大小错误
Error in Key Size I'm Using for AES Encryption C#
我正在尝试使用我的客户给我的下面的密钥来加密字符串
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, 0, wordBytes.Length);
cs.Close();
}
byte[] encryptedBytes = ms.ToArray();
result = encryptedBytes;
return Convert.ToBase64String(result);
}
}
}
但是我得到一个错误
System.Security.Cryptography.CryptographicException: 'Specified key is not a valid size for this algorithm.
客户端一直在使用这个Key
我做错了什么?
我的客户使用
HttpServerUtility.UrlTokenDecode(string input);
用于解码 base64 字符串。
希望这对以后的人有所帮助。
我正在尝试使用我的客户给我的下面的密钥来加密字符串
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, 0, wordBytes.Length);
cs.Close();
}
byte[] encryptedBytes = ms.ToArray();
result = encryptedBytes;
return Convert.ToBase64String(result);
}
}
}
但是我得到一个错误
System.Security.Cryptography.CryptographicException: 'Specified key is not a valid size for this algorithm.
客户端一直在使用这个Key
我做错了什么?
我的客户使用
HttpServerUtility.UrlTokenDecode(string input);
用于解码 base64 字符串。
希望这对以后的人有所帮助。