2016-04-08 120 views
0

我已經繼承了一個DotNetNuke網站,由一個認爲存儲用戶密碼爲純文本的人構建和管理,因爲他可以輕鬆查找密碼並告訴用戶如果他們忘記了它,並且如果他們有問題登錄,他們會是什麼。在從心臟病發作中恢復過來並發現這一點之後,我開始思考這種愚蠢是多麼的愚蠢,我需要解決它。DotNetNuke - 純文本加密/散列密碼

我知道要更改web.config設置以使用正確的密碼配置,但希望其他人必須使用DotNetNuke網站執行此操作可能會提供一些有關解決此問題的最佳方法的指導。我應該只使用標準的.NET代碼並編寫一個應用程序來循環使用它們並更改它們,還是需要使用DotNetNuke用戶對象?任何文章鏈接或示例代碼都會非常有用。我已經找到了關於這樣做的文章,但不是在DotNetNuke網站的背景下,我不確定是否需要考慮任何特殊的考慮事項。

+0

不要加密密碼,這只是稍微好一些,因爲加密密鑰必須可用。哈希也不是加密。 您需要使用諸如PBKDF2或bcrypt這樣的密碼,它們會用鹽和迭代計數來散列密碼。 – zaph

+0

是的,我明白了。我只是專門尋找實現建議/代碼示例來做到這一點DotNetNuke網站。 – CodeConqueror

回答

0

可悲的是,沒有任何真正的文檔可以解決這個問題。我的建議是將web.config更改爲散列。完成此操作後,用戶重置將開始使用新格式。

然後,您可以編寫一個簡單的模塊,使用計劃文本抓取所有用戶,並使用UserController API中的ChangePassword API調用重置其密碼。這不是優雅的,但會完成工作。