如何在PHP中使用散列加密和解密字符

时间:2016-02-27 14:06:21

标签: php hash

您正在为我的项目使用哈希。我是按照以下代码正确创建加密的:

<?php 
function cryptPass($input, $rounds = 9) {
    $salt = "";
    $saltChars = array_merge(range('A','Z'), range('a','z'), range('0','1'));
    for($i = 0; $i < 22; $i++)
    {
        $salt .=$saltChars[array_rand($saltChars)];
    }
    return crypt($input, sprintf('$2y$%02d$', $rounds). $salt);
}
$pass = "passsword";
$hasedpass = cryptPass($pass);
echo $hasedpass;
echo '<br>';
?>

我的结果是: $ 2y $ 09 $ HICRjrIyBYXWqcqRFC1dDOXF9tTtKZeOTBewebsooxHtWvvepqrnu

现在我的问题是如何解密$hasedpass。 我的意思是结果将来password $传递值。

1 个答案:

答案 0 :(得分:3)

来自文档:

  

crypt - 单向字符串哈希

您无法解密单向哈希。这就是使用单向散列的重点。

如果您想知道密码是否正确,请获取提交的密码,使用相同的盐密码,然后将结果与存储的散列版本进行比较。