2012-02-17 80 views
1

我正在嘗試在ASP.NET MVC3中創建一個自定義成員系統。加密ASP.NET MVC 3中的密碼

我知道有很多免費和開源的提供商,但我正在這樣做以瞭解更多。我的問題是關於加密密碼。

您建議我使用哪種算法:SHA1,SHA256,MD5,BCrypt或其他什麼?另外,您建議如何創建密碼鹽?

回答

1

BCrypt如果你需要真正強大的散列。就產生鹽而言,您可以使用RNGCryptoServiceProvider類。這裏的an article,你可以結帳。只需用BCrypt替換那裏使用的SHA1算法即可。

+0

謝謝。 BCrypt是否由.net和RNGCryptoServiceProvider內部支持? – 2012-02-17 18:20:50

+1

@ king.net,不,它不是。雖然有.NET實現:http://bcrypt.codeplex.com/ – 2012-02-17 18:23:01

1

大多數這些算法都是哈希算法,它們不會加密它們創建哈希(校驗和),通常這是存儲密碼的最佳方式,除非您有一個非常好的理由想要一種方法來恢復密碼我不認爲有這麼多的原因)。

我特意使用sha256。關於鹽,一個隨機的6個或更多的字符串就足夠了。但鹽可以是任何東西,這取決於你的想象力如何產生它。