c# - 如何为加密算法创建加密 key ?

标签 c# .net security encryption

我想使用 .Net Security 命名空间中可用的加密算法,但是我试图了解如何生成 key ,例如 AES 算法需要 256 位、16 字节 key 和一些初始化向量,这也很少字节。

  1. 我可以在我的 key 和 IV 中使用任何值的组合吗?例如Key 和 IV 中的所有零是否有效?我知道执行大量异或运算的算法的细节,所以零不会有任何好处,但这些算法有任何限制吗?

  2. 或者我是否必须使用某些程序生成 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/

相关文章:

c# - 数据表转 JSON

java - PreparedStatement IN 子句替代方案?

php - CakePhp:避免 XSS 攻击保持蛋糕的易用性

c# - 获取表格上方的文本 MS Word

javascript - 防止用户篡改 View 的增量代码

php - 让用户呈现自己的 SVG 文件的安全隐患

c# - 获取我的实际 DNS

c# - Google Pay 使用 .net 解密直接 token

c# - 使用 RSS 提要 XML 并显示信息

c# - 异步队列处理的 CPU 使用率几乎达到 100%