我正在处理 .net 应用程序中的安全问题,据报道我的代码易受攻击,我发现问题在于我存储密码的方式
例如:
<add key="RegxxxChannelPassword" value="test"/>
<add key="xxxRegistrationConnStr" value="xxxxxxxxxx;
所以我的工具显示以纯文本形式存储密码是危险的。
那么我可以加密并保存密码吗?
如果有任何算法,有人可以建议我吗?
使用会员提供者会简单得多。如果您自己进行加密,那么您就是在重新发明轮子并且无视框架可以为您做什么。
我建议你去阅读它。
在这种情况下,提供者的相关属性是passwordFormat
。
编辑:有那么一刻,我以为您在谈论用户密码。如果它是连接字符串的密码,它应该在 .config 文件中,例如 web.config。如果你把它放在合适的地方,VS 不会抱怨它是未加密的,因为它的内容无论如何都不会提供给客户。
您可以使用 aspnet_regiis 加密 web.config 的部分,但 web.config 是存储密码等的非常标准的地方,只要该网站部署到您拥有的服务器上。您也可以将值放在注册表中,但在大多数情况下,这是不必要的。这是一篇关于加密 web.config 部分的文章:
http://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.100%29.aspx
如果您走这条路,您将运行命令以加密 web.config 作为部署步骤,应用程序将自行处理解密和使用这些值。
如果您想将密码存储在 Web.config 中,我建议您查看 Rijndael 进行双向加密:http: //msdn.microsoft.com/en-us/library/system.security.cryptography .rijndael.aspx
我同意@Renan,正确的方法是使用 MembershipProvider。