【问题标题】:password_verify shows invalid password in functionpassword_verify 在函数中显示无效密码
【发布时间】:2014-07-09 16:27:37
【问题描述】:

我正在尝试使用 passrord_hash()password_verify()。以下代码完美运行。

$timeTarget = 0.2; 
$pass = "";
$cost = 9;
do {
$cost++;
$start = microtime(true);
$pass = password_hash("qwerty", PASSWORD_BCRYPT, ["cost" => $cost]);
    $end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Appropriate Cost Found: " . $cost . "\n";
echo $pass;


$hash = $pass;

if (password_verify('qwerty', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}

但是当我将它转换为函数时,它显示无效密码。我回应了函数中的传递值。它显示了正确的价值。但结果就错了。我无法理解代码有什么问题

$str = "qwerty";

$enc = encrypt($str);

verify_string($str, $enc);



function encrypt($pass){
$timeTarget = 0.2; 
$cost = 9;
do {
    $cost++;
    $start = microtime(true);
    $pass = password_hash($pass, PASSWORD_BCRYPT, ["cost" => $cost]);
    $end = microtime(true);
} while (($end - $start) < $timeTarget);


echo $pass."<br />";
return $pass;
}

function verify_string($str, $enc){
echo $str." :  ".$enc."<br />";

if (password_verify($str, $enc)) {
    echo 'Password is valid!<br />';
}
    else {
    echo 'Invalid password.<br />';
}
}

请帮忙

【问题讨论】:

  • 你想用这个循环实现什么?
  • 我从教程 "docs.php.net/manual/en/function.password-hash.php" 中得到了这段代码,这是为了增加成本并提高哈希安全性
  • @sectus :对不起,我没听懂你。你能解释一下吗?
  • 这段代码的目的是获取Cost。但是您正在尝试将其用作加密功能。

标签: php encryption passwords password-hash


【解决方案1】:

1 .循环使用密码的 const 值

$pass = password_hash("qwerty", PASSWORD_BCRYPT, ["cost" => $cost]);

2 。循环使用变量 $pass 并将变量放入 $pass。在第二个圆圈变量 $pass 包含哈希,但不包含密码。

$pass = password_hash($pass, PASSWORD_BCRYPT, ["cost" => $cost]);

【讨论】:

  • 这很好用。但我从 php 教程中获得了这段代码。这个循环将根据服务器容量设置成本。
  • 哇...现在它工作了。我将 $pass 复制到另一个变量并将其放入函数中。非常感谢你
  • @Arun ,请勿使用此代码。只需使用password_hash
  • @Arun 。为了提高您的安全性,您需要将Cost 设置得尽可能高。要找出成本,您只需在目标服务器上运行一次示例中的代码。然后在您的应用设置中使用结果。
  • 感谢您的帮助。我会照你说的做的.. :)
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2020-08-02
  • 2016-05-22
  • 1970-01-01
相关资源
最近更新 更多