什么用于加密密钥和存储位置?

时间:2014-02-10 20:09:29

标签: c# .net asp.net-mvc security encryption

我正在使用本质量检查中提供的解决方案:https://stackoverflow.com/a/2791259/2713516

但是,我看到有些人将密钥(随机'密码')存储在代码中作为字段,但我想知道这是否真的是一个好主意。 该解决方案中使用的盐也是该类中的一个领域。

有人建议使用用户密码,但由于这可能会改变,我不认为这是个好主意。

所以我的问题是。 将盐存储在类中,就像上面提到的解决方案中提出的字段一样好吗? 我应该使用什么加密/解密密钥? (所有用户的一些随机密钥)? 我应该在哪里存放这个钥匙?在课堂上作为一个领域?在数据库中?

谢谢!

1 个答案:

答案 0 :(得分:1)

我个人会将密钥存储在应用程序的配置文件中。 app.config文件或web.config文件(取决于它是桌面应用程序还是Web应用程序)。

<add key="EncryptionKey" value="MY_KEY" />

我会使用一些随机字符串生成器生成密钥。

您是否预计经常需要更换密钥?

另外 - 对于web.config的生产转换,我建议将加密密钥从SCM解决方案(GIT,SVN等)中删除。我把我们所有人都放在一个单独的KeyPass数据库中。