2012-09-13 139 views
11

我正在用ASP.NET MVC创建一个Web应用程序,并且我想在数据库中存储一些密码。何处存储AES密钥?

密码必须是可恢复的。 (他们不是为我自己,我需要密码来与API通信,这需要真正的密码)所以我不能使用散列算法等。

我发现AES对我来说是一个很好的加密算法。

但问题是:在哪里存储AES密钥?存储在appsettings里面web.config够了吗?如何使关键更难找到(黑客)?

接下来的问题:任何想法使这个系统更安全?

+0

当然,您可以用另一个密钥加密一个密钥,然后使用另一个关键广告的恶心加密该密钥。但是,想想你想要达到的目标是否值得,那就是限制信息的获取。实现这一点的方法有很多,其中大部分都不是加密。 –

+0

那么,你推荐什么方式?将密钥存储在web.config中并且足够加密web.config? –

+0

是的,这当然可以成为你的*密钥管理*方案的一部分(因此评论)。我只是确保你不只是在看加密机制。你去哪里解密'web.config'的密钥?谁有权访问它? –

回答

3

可以加密.config文件的各个部分。 Here is the msdn documentation,但您也可以在网上找到其他演练。

+0

谢谢,但加密'web.config'有足够的安全性吗?如何使这个系统更安全? –