怎么样?在ASP.NET中加密和解密用户成员资格密码

smd*_*ger 8 asp.net encryption asp.net-membership

我们正在使用ASP.NET成员资格提供程序创建一个用于注册和登录的新站点.我们的旧系统加密了用户密码,以便我们可以在需要时恢复它们.

我很难搞清楚是否有可能使用ASP.NET成员函数来简单地加密密码,当用户注册然后解密它以便我可以看到它.

这方面的文档几乎不存在.

我知道如何配置Web.config以使其在提供程序中将密码存储为加密的ala passwordFormat ="Encrypted"并在machineKey中分配validationKey,但似乎密码仍然被哈希(尽管它可能只是加密良好) .无论哪种方式,我都无法解决如果必要的话,如何恢复密码(由我们).

谢谢!

fra*_*yer 10

以可恢复的格式存储密码是一个非常糟糕的主意.如果您可以恢复它们,那么任何闯入您服务器的人都可以.

你最好使用标准的hash + salt方法并使用密码重置机制来处理用户忘记密码的情况.


Joh*_*soe 5

您需要使用passwordFormat ="Encrypted"而不是passwordFormat ="Hashed".然后,您可以使用MembershipProviderDecryptPassword方法在必要时解密密码.