gpt4 book ai didi

php - 使用 PHP、MySQL 和 MD5 创建登录

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:39 25 4
gpt4 key购买 nike

问题已解决。感谢所有发布并帮助我的人。列类型太短 (varchar(25)) - 我扩展了它并能够登录。感谢大家的评论。

当我尝试使用我创建的测试帐户登录时遇到一些问题。我正在尝试制作自己的 CMS。现在我已经完成了注册页面并正在处理登录页面。我在注册时对用户密码进行了 MD5 加密。当我尝试使用此帐户登录时,登录页面上生成的散列与存储在我的 SQL 数据库中的散列不匹配。

这是我的 PHP 代码和 MySQL 查询:

$username = mysql_real_escape_string($_REQUEST['username']);
$password = mysql_real_escape_string($_REQUEST['password']);

$query = mysql_query("SELECT username FROM records WHERE username='".$username."'") or die(mysql_error());
$result= mysql_fetch_array( $query );

if($result[0] == $username) {

$query = mysql_query("SELECT password FROM records WHERE username='".$username."'") or die(mysql_error());
$result = mysql_fetch_array( $query );
$passHash = md5($password);

echo "Hash: ".$passHash."<br/>";
echo "User's hash: ".$result[0];

if($result[0] == $passHash) {
echo "XXXXX: WIN";
}
else {
echo "fail";
}

我有一个名为“alex”的帐户,在注册页面上生成的 MD5 是“1c13465e24d91aca4d3ddaa1b”,在登录页面上生成的 MD5 哈希是“1c13465e24d91aca4d3ddaa1bc3e7027”

这是我的注册页面代码:

$username = mysql_real_escape_string($_REQUEST['username']);
$password = mysql_real_escape_string($_REQUEST['password']);
$md5_pass = md5($password);
mysql_real_escape_string(mysql_query("INSERT INTO records (username, password, ) VALUES('$username', '$md5_pass' ) ") or die(mysql_error()));

我做错了什么?我一直在这里搜索并查看:

md5 hash login with php and mysql

但运气不好。非常感谢任何帮助!

最佳答案

很可能存储密码哈希的列太短,例如VARCHAR(25).
让它变大:CHAR(32)BINARY(16)
另见:

关于php - 使用 PHP、MySQL 和 MD5 创建登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781365/

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