加密ASP.NET成员资格提供程序DB中的密码

时间:2010-07-19 14:01:31

标签: asp.net asp.net-membership

我有一个遗留应用程序,它使用带有SQL后端的ASP.NET成员资格提供程序。数据库中的密码设置为clear。我想加密这些密码,同时保留个人密码。我怎样才能以编程方式完成此任务?

我知道为了让ASP.NET识别更改,我需要更改数据库密码格式,密码salt和密码本身。我还需要更改ASP.NET配置中的密码格式以使用加密密码格式。

基本上,我需要生成一个盐,获取密码,对密码应用加密,但我对如何实际加密密码感到有点迷失。

2 个答案:

答案 0 :(得分:3)

当您说要通过仍然保留个人密码来加密这些密码时,我假设您的意思是您不希望更改用户的密码。

我建议你对此进行试运行(我相信你肯定会这样做)。

参考这篇文章,了解SHA1散列的工作原理。 How to create a asp.net membership provider hashed password manually?

  1. 创建一个小应用程序以连接到数据库并散列所有密码。

  2. 更新应用程序的配置以隐藏密码(删除“清除”指令,因为散列是默认值。

答案 1 :(得分:1)

我建议你用盐哈希。

此网页包含您需要散列的所有内容:http://www.obviex.com/samples/hash.aspx

你必须迭代你的记录并更新它们。

然后更改代码中的密码检查逻辑。