西八里庄网站建设,做空视频文件的网站,南京做南京美容整形网站,无锡市住房与城乡建设局网站有没有办法通过自己的散列方法插入mysql数据库的php验证密码#xff1f;例如,如果我手动在表中插入用户数据,请假设用户表,如下所示#xff1a;INSERT INTO users (email, pswd) VALUES (demoexample.com, SHA1(pass123));让我们假设mysql数据库中的哈希密码是#xff1a;--…有没有办法通过自己的散列方法插入mysql数据库的php验证密码例如,如果我手动在表中插入用户数据,请假设用户表,如下所示INSERT INTO users (email, pswd) VALUES (demoexample.com, SHA1(pass123));让我们假设mysql数据库中的哈希密码是------------------------------------------| pswd |------------------------------------------| AAFDC23870ECBCD3D557B6423A8982134E17927E |------------------------------------------现在,我想使用php创建一个登录表单,当用户插入凭据时,他们应该能够登录.我的意思是,用户不会有任何php注册表单;密码将手动提供.但是如何验证用户在php中提供的数据与存储在mysql数据库中的密码据我所知,php中的password_verify()只有在使用自己的password_hash()函数对密码进行哈希处理时才有效.我找到了另一个解决方案,就是再次使用sql查询,就像这样 –SELECT pswd FROM users WHERE email$_POST[email] AND pswd md5($_POST[password]);然后通过计算执行该mysql查询的任何行返回的结果集,从而验证.但是,这对我来说似乎是一个非常糟糕的方法.我不知道是否还有其他办法.必须有一些好方法来解决这个问题.或者,可能是我必须使用另一个PHP表单将数据插入数据库.您的建议非常感谢.谢谢.解决方法:我建议你使用password_hash()并将结果哈希存储在数据库中.INSERT INTO users SET email?, pswd?如果需要手动插入密码,可以使用快速命令行PHP脚本将其转换为哈希.例如使用phpmyadmin或mysql客户端手动将密码插入数据库时,请使用此字符串.避免将密码放入SQL查询中的文字字符串中是个好主意,即使您使用SQL函数对其进行散列也是如此.请记住,查询日志和二进制日志中记录了整个SQL字符串 – 未散列.稍后,在验证登录时,获取密码哈希,如下所示SELECT pswd FROM users WHERE email?然后你的PHP代码有哈希.您可以使用password_verify().P.S.请学习使用参数化查询,不要在SQL查询中使用$_POST变量.这是一个SQL注入漏洞.标签php,mysql来源 https://codeday.me/bug/20190727/1549889.html