如何为加密算法创建加密密钥? [英] How to create Encryption Key for Encryption Algorithms?

查看:128
本文介绍了如何为加密算法创建加密密钥?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用.Net安全命名空间中可用的加密算法,但是我正在尝试了解如何生成密钥,例如AES算法需要256位,即16字节密钥,以及一些初始化向量,这也是很少字节。


  1. 我可以在Key和IV中使用任何值的组合吗?例如Key和IV中的全部零是否有效?我知道算法的细节很多,所以零不会提供任何好处,但是这些算法有什么限制吗?


  2. 或者我有使用某些程序生成密钥并将其永久保存在某个地方?


我想在加密后将数据存储在数据库中,安全配置文件数据(如用户名,密码,电话号码等)和密钥将可用于仅在连接字符串中提及的数据库用户和管理员。

解决方案

如果您正在使用加密来交换数据,那么您将需要一个密钥交换协议,但您不要自己使用,而是使用现成的TLS或SSL。



如果使用加密存储数据,则使用 CryptGenRandom (或其.net等价物 RandomNumberGenerator.GetBytes )并保存在文档中(清楚,不需要保护IV)。你永远不会忘记密钥,密钥由用户提供。通过使用 CryptDeriveKey 或其.Net等效版本 PasswordDeriveKey.CryptDeriveKey



更新



将数据存储在数据库中只有用户和管理员才可以使用3个键:



查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆