以下查询返回null。
SELECT `email`, `password`, `salt` FROM `users` WHERE `password` = md5(`salt`+md5('123123'+`salt`)+'123123') AND `email` = 'xeka@xeka.ru'
以下查询返回'd2b4312db21705dafd96df14f8525fef',但为什么?
SELECT md5( 'Vwm' + md5( '123123' + 'Vwm' ) + '123123' )
此代码返回“422ad0c19a38ea88f4db5e1feaaa920”。
$salt = 'Vwm';
$password = '123123';
echo md5($salt . md5($password . $salt) . $password);
进行用户授权。我如何创建一个数据库查询,让第一个拿到盐和盐的人有这个我做的一些MD5函数?
发布于 2011-01-31 02:47:26
SELECT md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) ;
您需要连接字符串(),然后对它们执行md5()。
这样,它将正确地返回与PHP脚本相同的值:
+--------------------------------------------------------------+
| md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) |
+--------------------------------------------------------------+
| 422ad0c19a38ea88f4db5e1fecaaa920 |
+--------------------------------------------------------------+
发布于 2011-01-31 02:48:45
MySQL中的字符串连接需要使用CONCAT()`。这个;
md5( '123123' + 'Vwm' )
实际上是将一个数字添加到字符串中:
mysql> select '12123' + 'Vwm';
+-----------------+
| '12123' + 'Vwm' |
+-----------------+
| 12123 |
+-----------------+
因此,您的查询与PHP端不同,因为您没有散列相同的字符串。
发布于 2011-01-31 02:44:52
https://stackoverflow.com/questions/4844717
复制相似问题