gpt4 book ai didi

c# - 生成 AES 256 位 key 值

转载 作者:太空狗 更新时间:2023-10-29 19:55:59 25 4
gpt4 key购买 nike

有谁知道从任意长度的密码短语生成 256 位 key 值的方法吗?加密不能加盐,因为需要再次生成加密值并在数据库中进行比较。因此,一个值在每次加密时都必须生成相同的加密字符串。

目前我正在使用 32 个字符的 key 来处理可能不正确的假设,这是 256 位?

那么,我希望将“快速棕狐”转换为合适的 AES 256 位 key 吗?

最佳答案

您可以构建 Rfc2898DeriveBytes Class使用任意大小的密码,然后导出所需大小的 key ,在本例中为 256 位(32 字节):

private static byte[] CreateKey(string password, int keyBytes = 32)
{
const int Iterations = 300;
var keyGenerator = new Rfc2898DeriveBytes(password, Salt, Iterations);
return keyGenerator.GetBytes(keyBytes);
}

为了产生确定性输出(即相同的输入将产生相同的输出),您需要对盐进行硬编码。盐必须至少为 8 个字节:

private static readonly byte[] Salt = 
new byte[] { 10, 20, 30 , 40, 50, 60, 70, 80};

关于c# - 生成 AES 256 位 key 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com