以下查询返回 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' )
此代码返回“422ad0c19a38ea88f4db5e1fecaaa920”。
$salt = 'Vwm';
$password = '123123';
echo md5($salt . md5($password . $salt) . $password);
做用户授权。我如何创建一个对数据库的查询,以便先用 SALT 和 SALT 有这个我做了一些 MD5 函数?
最佳答案
SELECT md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) ;
您需要对字符串进行 concat(),然后对它们执行 md5()。
这样它会正确返回与您的 PHP 脚本相同的值:
+--------------------------------------------------------------+
| md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) |
+--------------------------------------------------------------+
| 422ad0c19a38ea88f4db5e1fecaaa920 |
+--------------------------------------------------------------+
关于MySQL MD5 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4844717/