2012-06-01 246 views
1

我有一个用户sql服务器表,我想使用asp.net将密码加密并保存在此表中。我也希望该用户可以获得忘记密码和编辑个人资料页面上的密码,所以我需要解密它。我需要使用哪种算法或加密技术?密码加密/解密

请建议

+0

我建议你永远不要解密你的密码。大多数密码都以单向加密的方式存储(不能被清除),这样会更加安全。如果有人忘记了他们的密码,那么给他们一个新的密码就好多了。 – Limey

+1

@Limey - “单向加密”?你的意思是哈希。 – Oded

+0

散列密码并给用户设施重置密码。在.net中使用内置的SHA1Managed算法进行单向加密。 –

回答

9

不加密密码进入数据库 - (使用盐)散列它。

能够检索密码并不是您真正需要的。您需要使用户能够重新登录。能够解密密码意味着您可能会让人们知道用户的密码。

我建议阅读Troy Hunt的Everything you ever wanted to know about building a secure password reset feature。这是对实施安全密码策略的问题和解决方案的全面分析。

+0

重置密码怎么办?我如何重置密码如果我哈希它。我假设散列密码不能被检索。 – DotnetSparrow

+3

@DotnetSparrow - 你不检索它。您让用户将其设置为新的。阅读文章。 – Oded

1

要做的最安全的事情是散列密码,以便它不能被解密 - 因此没有其他人会知道他们的密码,包括你的公司的成员&。当用户忘记密码时 - 生成一个临时密码并强制他们重置密码。