【发布时间】:2012-09-06 16:21:58
【问题描述】:
我正在使用 ASP.NET MVC 创建一个 Web 应用程序,并且我想将一些密码存储到数据库中。
密码必须是可恢复的。 (它们不是给我自己的,我需要密码才能与需要真实密码的 API 进行通信)所以我不能使用哈希算法等。
我发现AES 对我来说是一个很好的加密算法。
但是,问题是:在哪里存储 AES 密钥?存储在appsettings 里面web.config 足够了吗?如何让密钥更难找到(对于黑客而言)?
还有下一个问题:有什么想法可以让这个系统更安全吗?
【问题讨论】:
-
当然,您可以用另一个密钥加密一个密钥,然后再用另一个令人作呕的密钥加密该密钥。但是想想你想要达到的目标是值得的,那就是限制对信息的访问。实现这一点的方法有很多,其中大多数都与加密无关。
-
那么,你推荐什么方式?将密钥存储在 web.config 中并加密 web.config 是否足够?
-
是的,这肯定是您的密钥管理方案的一部分(因此有评论)。我只是确保你不只是在看加密机制。你要去哪里解密
web.config的密钥?谁可以访问它? -
目前,我将密码的密钥存储在 web.config 中的
appsettings中,然后使用 asp.net 内置方法对 web.config 进行加密。 (见:stackoverflow.com/questions/54200/…),但我想让这个过程更安全。
标签: c# asp.net asp.net-mvc cryptography aes