DotNetNuke - 纯文本加密/散列密码

问题描述:

我已经继承了一个DotNetNuke网站,由一个认为存储用户密码为纯文本的人构建和管理,因为他可以轻松查找密码并告诉用户如果他们忘记了它,并且如果他们有问题登录,他们会是什么。在从心脏病发作中恢复过来并发现这一点之后,我开始思考这种愚蠢是多么的愚蠢,我需要解决它。DotNetNuke - 纯文本加密/散列密码

我知道要更改web.config设置以使用正确的密码配置,但希望其他人必须使用DotNetNuke网站执行此操作可能会提供一些有关解决此问题的最佳方法的指导。我应该只使用标准的.NET代码并编写一个应用程序来循环使用它们并更改它们,还是需要使用DotNetNuke用户对象?任何文章链接或示例代码都会非常有用。我已经找到了关于这样做的文章,但不是在DotNetNuke网站的背景下,我不确定是否需要考虑任何特殊的考虑事项。

+0

不要加密密码,这只是稍微好一些,因为加密密钥必须可用。哈希也不是加密。 您需要使用诸如PBKDF2或bcrypt这样的密码,它们会用盐和迭代计数来散列密码。 – zaph

+0

是的,我明白了。我只是专门寻找实现建议/代码示例来做到这一点DotNetNuke网站。 – CodeConqueror

可悲的是,没有任何真正的文档可以解决这个问题。我的建议是将web.config更改为散列。完成此操作后,用户重置将开始使用新格式。

然后,您可以编写一个简单的模块,使用计划文本抓取所有用户,并使用UserController API中的ChangePassword API调用重置其密码。这不是优雅的,但会完成工作。