2012-07-20 64 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