以下是處理:我將.NET網站移動到Python。我有一個數據庫密碼散列使用System.Security.Cryptography.SHA1Managed實用程序。如何在Python中重現System.Security.Cryptography.SHA1Managed結果
我創建用下面的代碼在.NET中的哈希:
string hashedPassword = Cryptographer.CreateHash("MYHasher", userInfo.Password);
的MYHasher塊看起來是這樣的:
<add algorithmType="System.Security.Cryptography.SHA1Managed, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=blahblahblah"
saltEnabled="true" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=3.0.0.0, Culture=neutral, PublicKeyToken=daahblahdahdah"
name="MYHasher" />
所以對於一個給定的密碼,我回去和存儲在數據庫中一個48字節的salted sha1。我假設最後8個字節是鹽。我試圖通過執行sha1(鹽+密碼)和sha1(密碼+鹽)來重現python中的哈希過程,但我沒有運氣。
我的問題給你:
- 是如何被使用的公鑰?
- 如何使用salt重新設置密碼。
- 鹽是如何產生的? (例如,當我說saltEnabled =「true」時,會發生什麼額外的魔法?)
我需要不只引用其他.NET庫的具體細節,我正在尋找發生的實際操作邏輯在黑匣子裏。
謝謝!