gpt4 book ai didi

php - 如何让 crypt() 正常工作?

转载 作者:行者123 更新时间:2023-11-29 06:15:27 24 4
gpt4 key购买 nike

这是我的失败代码。我仍在熟悉语法,所以我猜这可能是一个问题。 crypt 花了我一段时间才理解,但它基本上生成了一个看似随机的盐并将其存储在“加密”密码中。因此,当您想对其进行测试时,您需要从存储的密码中检索盐。因此登录代码更长。

注册时插入

  $pass = crypt($pass);
database::query("INSERT INTO cr VALUES ('$fname', '$lname', '$email', '$pass')");

检查 sig_in

$query = "SELECT pass FROM cr WHERE email='$email'";
$row = mysql_fetch_row(database::query($query));
$pass = crypt($pass, $row[0]);
$query = "SELECT email,pass FROM cr WHERE email='$email' AND pass='$pass'";
if (mysql_num_rows(database::query($query)) == 0)
{

最佳答案

这是一个bcrypt您可以使用辅助类。

用法:

$bcrypt = new bcrypt(7); // number of rounds
$hash = $bcrypt->hash('password');
$isGood = $bcrypt->verify('password', $hash);
echo "$hash $isGood"

PS - 您的代码容易受到 SQL 注入(inject)攻击。考虑查看准备好的陈述。查看 PDO 和 MySQLi。

编辑 - 我忘记从类中取出几个未定义的常量,因此请随意删除 BCRYPT_ROUNDS 以及您可能找到的任何其他常量。抱歉。

关于php - 如何让 crypt() 正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6880559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com