Dot-Net

安全密碼散列

  • July 9, 2014

我需要在 .Net WinForms 應用程序中儲存單個密碼的雜湊值。

最安全的方法是什麼?

特別是:

  • 鹽,HMAC,或兩者兼而有之?
  • 多少鹽?
  • 多少次迭代?
  • 什麼編碼?(密碼是純ASCII)

我假設算法應該是 SHA512 或 HMACSHA512。

使用至少 128 位或更長的安全隨機鹽對雜湊進行加鹽,以避免彩虹攻擊並使用BCryptPBKDF2scrypt。PBKDF2 帶有NIST 批准

引用:Archive.org:http ://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html

問題是 MD5 速度很快。它的現代競爭對手也是如此,例如 SHA1 和 SHA256。速度是現代安全散列的設計目標,因為散列是幾乎每個密碼系統的建構塊,並且通常在每個數據包或每個消息的基礎上按需執行。

速度正是您在密碼雜湊函式中不想要的。

快速密碼驗證功能是一個問題,因為它們可能會受到暴力攻擊。使用上述所有算法,您可以控制“緩慢”

引用自:https://stackoverflow.com/questions/1841595