2010-04-07 64 views
2

我的aspnet_Membership表中有一個SHA1密碼和PasswordSalt。 但是,當我從服務器(Sql查詢)運行查詢時,閱讀器顯示 傳遞已作爲其明文等價返回。SHA1密碼在數據庫查詢後作爲明文返回

我想知道如果我的web.config配置造成這種情況?

<membership defaultProvider="CustomMembershipProvider" 
       userIsOnlineTimeWindow="20" 
       hashAlgorithmType="SHA1"> 
     <providers> 
     <clear/> 
     <add name="CustomMembershipProvider" 
       type="Custom.Utility.CustomMembershipProvider" 
       connectionStringName="MembershipDB" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresUniqueEmail="false" 
       requiresQuestionAndAnswer="false" 
       passwordStrengthRegularExpression="" 
       minRequiredPasswordLength="1" 
       minRequiredNonalphanumericCharacters="0" 
       passwordFormat="Hashed" 

在此先感謝...

+0

好的,我得到了兩張倒票。我想知道的是,如果有某種ASP.NET機制根據我的Web.config中的設置取回數據庫中的SHA1散列密碼後,否則,我無法真正解釋爲什麼我的哈希密碼在某些嚴重愚蠢的查詢監督之外以明文形式返回。 – 2010-04-08 19:28:07

回答

1

你使用正確的設置自動」爲會員提供者(特別是passwordFormat="hashed"),但你也有這樣一行:

type="Custom.Utility.CustomMembershipProvider" 

設置passwordFormat="hashed"只是告訴任何一個成員提供你使用你的想要密碼被散列。如果您使用自定義成員資格提供程序,則必須對該提供程序進行編碼才能遵守passwordFormat設置。

我99%確定您的密碼以明文形式存儲的原因是因爲這就是CustomMembershipProvider的程序設計。

+0

我100%確定pwd清楚的原因是因爲'CustomMembershipProvider'沒有編程來加密密碼。 OP問題的基調錶明耳朵後面有一點潮溼。但他會弄明白的。 ;-) – 2010-04-08 20:07:12

-3

OK,我想通了這一個了。答案是「是的,有在web.config中自動解密我SHA1 PWD機制注:

解密=」

<machineKey validationKey="MY Validateion Key" 
      decryptionKey="My Decryption Key" 
      validation="SHA1" decryption="Auto" /> 
+2

錯了。 SHA-1不能被「解密」,它是一種單向哈希函數。您在'machineKey'中看到的SHA1涉及ViewState驗證,並用於檢測/防止篡改。它與會員制度無關。 – Aaronaught 2010-04-08 19:54:30

+0

也許解密只是一個散列檢查。 OP的配置中有很多自定義內容。 :) – Macke 2011-08-25 05:40:45

相關問題