将 JavaScript 结果存储在 Php 变量中或给我一些正确的 PHP md5 函数


Store JavaScript Result In Php variable or give me some correct PHP md5 function

我有一些密码,其中包含一些特殊的密码,例如这个密码"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);