我已經在下面的URL中引用了以下網站的Rijndael和Asp.net哈希實現。是Asp.net身份哈希安全嗎?
- Rijndael算法 - How to generate Rijndael KEY and IV using a passphrase?
- Asp.net哈希 - ASP.NET Identity default Password Hasher, how does it work and is it secure?
在這兩個實施, 用於獲取密碼的隨機字節以下。 的Rijndael
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT);
Asp.net身份散列
Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(providedPassword, salt, HasingIterationsCount)
上面的代碼後,Rijndael算法適用於返回的字節的加密。 但是,asp.net身份複製結果與鹽字節數組一樣,並返回散列鍵。
在這裏,我有一個困惑。 RijnDael和Asp.net身份散列使用相同的Rfc2898DeriveBytes。
當RijnDael可以解密加密密鑰(這是在Rfc2898DeriveBytes的幫助下完成的),爲什麼我們可以解密Asp.net標識符散列密鑰?
有沒有可能做到這一點? 是否保護了Asp.net身份?
1)每一個被創造的想法都可以被打破 - 這是生活的規則。所以,如果你弄清楚如何asp.identity加密密鑰比你會想出如何解密它。 2)如果你想保護你的用戶密碼比你可能創建自己的算法,將加密輸入密碼併發送這個哈希字符串到Asp.net再加密一次。 3)如果你只是想檢查用戶輸入的密碼是否與數據庫中的密碼相同,你需要加密輸入並將該散列與數據庫中已有的散列進行比較 – DespeiL
因此,在對密碼進行散列之前,先對密碼進行加密然後進行散列將是安全的好主意? –
「RijnDael可以解密加密密鑰時」。不,你不能解密哈希密碼。你混淆了哈希和加密嗎? – Martheen