2011-09-13 33 views
0

用下面的方法switch case什麼信息可以從我的密碼散列函數中提取?它是否可逆?

switch ($crypt_type) { 
     case "MD5": $crypted_pass = md5($password); break; 
     case "SHA1": $crypted_pass = sha1($password); break; 

     case "DESMD5": 
//jpap 
//  $salt = substr($crypt_type, 0, 11); 
     $salt = substr($p_password, 0, 11); 
//jpap 
     $crypted_pass = crypt($password, $salt); 
     break; 

     case "CRYPT": 
//jpap 
//  $salt = substr($crypt_type, 0, 2); 
     $salt = substr($p_password, 0, 2); 
//jpap 
     $crypted_pass = crypt($password, $salt); 
     break; 

     default: 
     $crypted_pass = sha1($password); break; 
    } 

這是哈希密碼它產生

$1$lwnY.pgz$rm4Bwn0XmK7k4QawHi8Cz0 

可以由此提取什麼信息?它安全嗎?

回答

0

無法從中提取原始密碼,這就是定義。從提供的字符串中,我可以推斷$CRYPT_TYPE是crypt,並且使用的算法是帶有鹽1wnY.pgz的md5。您不應該將部分密碼用作crypt的鹽,因爲這在結果中可見。

它是安全的,因爲原始值不能從散列計算。

相關問題