我想使用 .Net Security 命名空间中可用的加密算法,但是我试图了解如何生成 key ,例如 AES 算法需要 256 位、16 字节 key 和一些初始化向量,这也很少字节。
我可以在我的 key 和 IV 中使用任何值的组合吗?例如Key 和 IV 中的所有零是否有效?我知道执行大量异或运算的算法的细节,所以零不会有任何好处,但这些算法有任何限制吗?
或者我是否必须使用某些程序生成 key 并将其永久保存在某处?
我想在加密后将数据存储在数据库中,用户名、密码、电话号码等安全配置文件数据,并且 key 仅供连接字符串中提到的数据库用户和管理员使用。
最佳答案
你真的应该以正确的方式做到这一点:)
1) 使用安全生成的随机 IV
2) 使用安全生成的随 secret 钥
3) 不要使用 ECB 模式 - EVER
AesManaged aes = new AesManaged();
aes.GenerateKey();
aes.GenerateIV();
上面的代码将为您正确安全地生成随机 IV 和随 secret 钥。
关于c# - 如何为加密算法创建加密 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503433/