MySQL MD5 选择

发布于 2024-10-15 14:05:02 字数 670 浏览 2 评论 0原文

以下查询返回 null。

SELECT `email`, `password`, `salt` FROM `users` WHERE `password` = md5(`salt`+md5('123123'+`salt`)+'123123') AND `email` = '[email protected]'

以下查询返回“d2b4312db21705dafd96df14f8525fef”,但为什么呢?

SELECT md5( 'Vwm' + md5( '123123' + 'Vwm' ) + '123123' )  

此代码返回“422ad0c19a38ea88f4db5e1fecaaa920”。

$salt = 'Vwm';
$password = '123123';

echo md5($salt . md5($password . $salt) . $password);

进行用户授权。如何创建对数据库的查询,以便第一个采取 SALT 和 SALT 有这个我做了一些 MD5 函数?

This following query returned null.

SELECT `email`, `password`, `salt` FROM `users` WHERE `password` = md5(`salt`+md5('123123'+`salt`)+'123123') AND `email` = '[email protected]'

The following query returned 'd2b4312db21705dafd96df14f8525fef', but why?

SELECT md5( 'Vwm' + md5( '123123' + 'Vwm' ) + '123123' )  

This code returned '422ad0c19a38ea88f4db5e1fecaaa920'.

$salt = 'Vwm';
$password = '123123';

echo md5($salt . md5($password . $salt) . $password);

Do user authorization. How do I create a query to the database so that the first took SALT and SALT have this I did some MD5 function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不弃不离 2024-10-22 14:05:02
SELECT md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) ;

您需要 concat() 字符串,然后对它们执行 md5() 。

这样它就会正确返回与 PHP 脚本相同的值:

+--------------------------------------------------------------+
| md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) |
+--------------------------------------------------------------+
| 422ad0c19a38ea88f4db5e1fecaaa920                             |
+--------------------------------------------------------------+
SELECT md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) ;

You need to concat() the strings then execute md5() on them.

This way it returns correctly the same value as your PHP script:

+--------------------------------------------------------------+
| md5(CONCAT('Vwm', md5(CONCAT('123123', 'Vwm' )), '123123' )) |
+--------------------------------------------------------------+
| 422ad0c19a38ea88f4db5e1fecaaa920                             |
+--------------------------------------------------------------+
心清如水 2024-10-22 14:05:02

MySQL 中的字符串连接需要使用 CONCAT()`。这;

md5( '123123' + 'Vwm' )

实际上是在字符串中添加一个数字:

mysql> select '12123' + 'Vwm';
+-----------------+
| '12123' + 'Vwm' |
+-----------------+
|           12123 |
+-----------------+

因此您的查询与 PHP 端不同,因为您没有对相同的字符串进行哈希处理。

String concatenation in MySQL requires using CONCAT()`. This;

md5( '123123' + 'Vwm' )

is actually adding a number to a string:

mysql> select '12123' + 'Vwm';
+-----------------+
| '12123' + 'Vwm' |
+-----------------+
|           12123 |
+-----------------+

So your query is not the same as the PHP side, as you're not hashing the same string.

方觉久 2024-10-22 14:05:02
  • 盐应该在
  • 您的数据库中的脚本中加盐密码
  • 中,您的脚本正在对密码加盐,并与数据库中的加盐版本进行比较,
  • 如果相同则考虑确定
  • salt should be in your script
  • salted password in your database
  • your script is salting password and compare with salted version in db
  • if same consider OK
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文