2011-02-15 114 views
5

我有一些關於.Net中的MembershipProvider的問題,我一直無法找到明確的答案。ASP.NET MembershipProvider加密/解密

  • 使用什麼類型的加密,AES?
  • 該方法加密密碼,它可以處理任何鹽,或者我只是在通過它之前添加它?
  • 方法DecryptPassword - 你真的可以解密密碼嗎?這不是一個可以做的不好的做法嗎?

謝謝您的輸入!

回答

4

add Element for providers for membership (ASP.NET Settings Schema)

  • enablePasswordRetrieval屬性:「指定成員資格提供程序實例是否支持密碼檢索如果爲true,成員資格提供實例支持密碼取回的默認值是SQL和Active Directory提供兩個假。 「
  • passwordFormat屬性:「MembershipPasswordFormat值之一,指示在成員資格數據存儲中存儲密碼的格式。默認值爲」散列「。
    • 散列:「密碼是加密的使用SHA1哈希算法單向 您可以指定比使用hashAlgorithmType屬性SHA1算法不同散列算法。」
    • 加密:「加密密碼使用machineKey元素(ASP.NET設置架構)元素配置確定的加密設置進行加密。」

所以,默認情況下的SqlMembershipProvider將使用散列與SHA1哈希(單程)的密碼。散列密碼不使用EncryptPassword/DecryptPasswords方法,但不使用,您不能手動將salt傳遞給密碼的加密/編碼(它會爲您提供這些密碼)。