簡體   English   中英

從我的密碼哈希函數中可以提取什么信息? 它是可逆的嗎?

[英]What info can be extracted from my password hashing function? Is it reversible?

使用以下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

可以從中提取什么信息? 安全嗎?

哈希函數不能反轉,這就是為什么它們非常適合存儲密碼。 為了解釋為什么會這樣,請查看此SO問題how-come-md5-hash-values-not-reversible並查看接受的答案

原始密碼無法從中提取出來,這是根據定義。 從提供的字符串中,我可以$CRYPT_TYPE$CRYPT_TYPE是crypt,使用的算法是md5,鹽為1wnY.pgz 你不應該使用密碼作為鹽的一部分crypt ,因為這是在結果可見。

從某種意義上說,無法從哈希值計算出原始值是安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM