0

我正在处理 .net 应用程序中的安全问题,据报道我的代码易受攻击,我发现问题在于我存储密码的方式

例如:

<add key="RegxxxChannelPassword" value="test"/>
<add key="xxxRegistrationConnStr" value="xxxxxxxxxx;

所以我的工具显示以纯文本形式存储密码是危险的。

那么我可以加密并保存密码吗?

如果有任何算法,有人可以建议我吗?

4

3 回答 3

2

使用会员提供者会简单得多。如果您自己进行加密,那么您就是在重新发明轮子并且无视框架可以为您做什么。

我建议你去阅读它

在这种情况下,提供者的相关属性是passwordFormat

编辑:有那么一刻,我以为您在谈论用户密码。如果它是连接字符串的密码,它应该在 .config 文件中,例如 web.config。如果你把它放在合适的地方,VS 不会抱怨它是未加密的,因为它的内容无论如何都不会提供给客户。

于 2013-05-08T21:08:56.420 回答
1

您可以使用 aspnet_regiis 加密 web.config 的部分,但 web.config 是存储密码等的非常标准的地方,只要该网站部署到您拥有的服务器上。您也可以将值放在注册表中,但在大多数情况下,这是不必要的。这是一篇关于加密 web.config 部分的文章:

http://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.100%29.aspx

如果您走这条路,您将运行命令以加密 web.config 作为部署步骤,应用程序将自行处理解密和使用这些值。

于 2013-05-08T21:30:41.113 回答
0

如果您想将密码存储在 Web.config 中,我建议您查看 Rijndael 进行双向加密:http: //msdn.microsoft.com/en-us/library/system.security.cryptography .rijndael.aspx

我同意@Renan,正确的方法是使用 MembershipProvider。

于 2013-05-08T21:23:09.300 回答