在 C# 中写出 AES 密钥和 IV
Write out AES key and IV in C#
我正在尝试让 C# 生成 AES 密钥和 IV。但是我找不到办法让它写出密钥和IV。
static void Main(string[] args)
{
using (var aes = Aes.Create())
{
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.CBC;
var iv = aes.GenerateIV();
aes.GenerateKey();
}
}
当我将 var 分配给 generate 方法时,出现无法将 void 分配给隐式类型变量的错误。
当我可以将其转换为字节数组时,它显示无法将类型 void 隐式转换为字节。
您需要访问 Aes
class 的 Key
和 IV
属性以获取 Key 和 IV 的值。
通过 Aes.Create
创建的 Aes 对象将具有可用的 IV 和键值。您只需要通过 Key 和 IV 属性检索它们。
Key
和 IV
属性属于 byte[]
类型,因此您需要将它们转换为字符串才能以文本格式查看。
考虑以下代码。
using (var aes = Aes.Create())
{
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.CBC;
var key = Convert.ToBase64String(aes.Key);
var iv = Convert.ToBase64String(aes.IV);
Console.WriteLine(key);
Console.WriteLine(iv);
}
我正在尝试让 C# 生成 AES 密钥和 IV。但是我找不到办法让它写出密钥和IV。
static void Main(string[] args)
{
using (var aes = Aes.Create())
{
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.CBC;
var iv = aes.GenerateIV();
aes.GenerateKey();
}
}
当我将 var 分配给 generate 方法时,出现无法将 void 分配给隐式类型变量的错误。 当我可以将其转换为字节数组时,它显示无法将类型 void 隐式转换为字节。
您需要访问 Aes
class 的 Key
和 IV
属性以获取 Key 和 IV 的值。
通过 Aes.Create
创建的 Aes 对象将具有可用的 IV 和键值。您只需要通过 Key 和 IV 属性检索它们。
Key
和 IV
属性属于 byte[]
类型,因此您需要将它们转换为字符串才能以文本格式查看。
考虑以下代码。
using (var aes = Aes.Create())
{
aes.KeySize = 256;
aes.BlockSize = 128;
aes.Padding = PaddingMode.Zeros;
aes.Mode = CipherMode.CBC;
var key = Convert.ToBase64String(aes.Key);
var iv = Convert.ToBase64String(aes.IV);
Console.WriteLine(key);
Console.WriteLine(iv);
}