Rumah > pembangunan bahagian belakang > tutorial php > 关于MD5密码存储和比较的问题

关于MD5密码存储和比较的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-20 12:34:27
asal
1629 orang telah melayarinya

我在注册时把密码用MD5加密的方式存储在mysql中,在登陆时用md5()比较,数值一直不对,导致一直比较失败,求解答


回复讨论(解决方案)

楼下贴出代码

这是判断的那个功能模块:
function pd(){//验证密码是否正确
$id=$_POST['id'];
$pwd=trim(md5($_POST['pwd']));
echo "$pwd"."";
$sql=mysql_query("SELECT * FROM `xx` WHERE `id`='$id'AND`password`='$pwd'");
$sql_p=mysql_num_rows($sql);
echo"$sql_p";
if($sql_p==0){
echo "<script> alert('密码不正确');window.location.herf='index.php';</script>";
}
else
{echo "<script> alert('密码正确');</script>";}
}

数据库中的md5值;
root2
e10adc3949ba59abbe56e057f20f88;
网页显示的值;
e10adc3949ba59abbe56e057f20f883e

$pwd=md5(trim($_POST['pwd']));//如果还是不行,重新生成一个md5的值,放到数据库再试下,看看是不是插入的时候错了
Salin selepas log masuk

echo md5('root2');mysql_connect();$rs = mysql_query("select md5('root2')");print_r(mysql_fetch_row($rs));
Salin selepas log masuk
9b70d6dbfb1457d05e4e2c2fbb42d7dbArray(    [0] => 9b70d6dbfb1457d05e4e2c2fbb42d7db)
Salin selepas log masuk
并不存在什么 e10adc3949ba59abbe56e057f20f883e

网页显示的这个 e10adc3949ba59abbe56e057f20f883e
不出意外的话是123456 跟你说得root2一点边都沾不上

PS 再多嘴说一句 看你数据库显示不全 基本上应该是密码的字段设置的位数不合理造成的 少了2个字符 至少char(32) 吧

1.desc xx 看看表结构,password字段长度需要32位
2.

echo md5('root2');  //9b70d6dbfb1457d05e4e2c2fbb42d7db
Salin selepas log masuk


e10adc3949ba59abbe56e057f20f883e是md5(123456)的值。

楼主可以给出明文密码,与数据库中记录的密码。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan