2012-06-06 88 views
0

我想解除在我們的openldap環境中SSHA加密的userPassword。我不想要純文本密碼,但希望獲得未加密的哈希密碼。OpenLDAP Unsalt PHP中的SSHA用戶密碼

有什麼想法?即使是散列和醃製的方法也是有用的。

+0

http://www.php.net/manual/en/function.sha1.php#104232? – DaveRandom

+1

或'function checkSSHAPass($ plainTextPass,$ ldapPass){if(strtoupper(substr($ ldapPass,0,6))!='{SSHA}')return FALSE; $ passStr = base64_decode(substr($ ldapPass,6)); return substr($ passStr,0,20)== sha1($ plainTextPass.substr($ passStr,20),TRUE); ''? – DaveRandom

+0

@DaveRandom就是這樣!出於好奇,你是否發現或自己編碼?我搜索了一段時間,沒有遇到任何東西。謝謝:) –

回答

4

你想以某種方式轉換

salt + sha1(salt + password) 

sha1(password) 

我看不出這有可能不知道明文密碼。如果可能的話,醃製本身將是一種無用而且微不足道的可逆技術。

+0

這絕對是鹽+沙1(鹽+通)?我也見過sha1(傳球+鹽)+鹽。我也會嘗試這種方式。 我正在接受輸入並比較輸入的哈希與存儲的用戶密碼。這比認證更深一點,否則我只是測試綁定。 –

+0

我在描述抽象的過程,看來OpenLDAP中的實際算法是'{SSHA}'+ base64(sha1(密碼+鹽))+ salt'。 – lanzz