2012-07-20 63 views
0

我怎樣才能解密被加密的密碼如下:如何解密此腳本?

function PwdHash($pwd, $salt = null) 
{ 
    if ($salt === null)  { 
     $salt = substr(md5(uniqid(rand(), true)), 0, SALT_LENGTH); 
    } 
    else  { 
     $salt = substr($salt, 0, SALT_LENGTH); 
    } 
    return $salt . sha1($pwd . $salt); 
} 

鑑於SALT_LENGTH是9?

+0

蠻力或忘掉它。 – Leri 2012-07-20 13:52:34

+3

如果它已經是肉末,你不能讓你的牛回來。散列法也是如此。 – 2012-07-20 13:59:34

+0

rand也不是密碼安全的,因此將它用作鹽生成器是一個可怕的想法。 – jhoyla 2012-07-20 14:07:47

回答

3

這不是一個encrypting功能,這是hash,所以它不應該在所有被解密。唯一可行的方法就是使用這種算法進行暴力破解並希望最終發生碰撞,但這可能需要很長時間。

+0

我必須檢查所有可能的單詞嗎? – digushi 2012-07-20 13:58:52

+0

@digushi是的,你必須並且不僅僅是單詞,而是散列字符串中使用的每個可能的字符組合。 – Leri 2012-07-20 14:04:30

+0

是的。而且正如你所理解的,它的數量非常巨大 – Miroshko 2012-07-20 14:04:53