我有一些密码,其中包含一些特殊的密码,例如这个密码"HHE1134ƒ",如果我想用php md5((生成密码,那么这不会给我正确的哈希值,比如"679b6dc6122a9c83ed31476ee82af36e"。
所以我有Java脚本,可以为我的密码生成正确的哈希但是我如何将此值存储到 mysql
我的代码如下,请帮助我。
$result = mysql_query("SELECT * FROM `table`") or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$user_id = $row['user_id'];
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$spno = $row['spno'];
$password = $row['password'];
$tmp = "<script type='text/javascript'> document.write(MD5('".$password."'));</script>";
$query1="UPDATE `wp_110504users` SET `user_pass` = '$tmp' WHERE `user_login` = '$user_id'";
mysql_query($query1) or die(mysql_error());
}
这会给我这样的错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'text/javascript'> document.write(MD5('HW72'));' WHERE `user_login` = '0' at line 1
?>
有人告诉我使用Ajax,请告诉我如何将Ajax用于此代码,请您给我一个例子.....
你的问题的前提从根本上是有缺陷的。
如果我想用 php md5(( 生成密码,那么这不会给我正确的哈希
我发现很难相信 PHP 的 md5 函数不会生成 md5 哈希。
你也对浏览器上运行的内容和客户端上运行的内容感到非常困惑。
所以我有Java脚本,可以为我的密码生成正确的哈希
所以你有一个javascript函数,它产生一些你认为有效的输出。相应的 PHP 函数不会生成您认为有效的输出。我认为这意味着您有一些参考实现可以产生与Javascript相同的结果 - 但是您没有提供详细信息。
或者你的意思是你的 Javascript 函数是你的参考实现 - 如果是这样,请在桌子上敲打几次你的头,然后去获取一个 md5 的 JavaScript 实现的副本,它可以正常工作
完成此操作后,请花一些时间思考为什么,无论哈希函数是否生成预期的输出,在客户端上生成密码的哈希(而不是加盐哈希的加盐哈希(完全是浪费时间。
您正在尝试在 PHP 中使用 JavaScript 生成 MD5?这是有道理的。您可以通过添加'addslashes($tmp)'
来修复此错误,然后该该字符将转义非法字符并使查询正常工作。但是,这不会修复逻辑错误。如果你想在 PHP 中使用 md5,请使用 md5 PHP 手册。这意味着
$tmp = md5($password);
您可以使用MySQL的MD5((函数,但我建议您添加密码。否则,您获得的额外安全性很少。
此外,你应该尝试了解你正在使用的不同技术(PHP,HTML,CSS,JavaScript,SQL...(以及它们如何交互。
试试吧
$a = serialize($yourstring);
$yourstring = unserialize($a);