Ans*_*yal 10 mysql mysql-5.5 password
我正在阅读一些 mysql 内部结构,在我的mysqlshell 中浏览 mysql.user 表时,我得到
mysql> select * from mysql.user limit 1 \G
*************************** 1. row ***************************
Host: localhost
User: root
Password: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
Run Code Online (Sandbox Code Playgroud)
密码显然是经过哈希处理的,但为什么它以星号(星号)开头?
除了以星号开头的密码,这里是PASSWORD() 的算法
SET @plaintextpassword = 'whatever password you want';
SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1(@plaintextpassword)))));
Run Code Online (Sandbox Code Playgroud)
mysql> SET @plaintextpassword = 'whatever password you want';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT UPPER(SHA1(UNHEX(SHA1(@plaintextpassword)))) PWD_CREATION;
+------------------------------------------+
| PWD_CREATION |
+------------------------------------------+
| D09AF2704D843A5E4E84362830C7EC1CEA40DF8A |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT PASSWORD(@plaintextpassword) PWD_FUNCTION;
+-------------------------------------------+
| PWD_FUNCTION |
+-------------------------------------------+
| *D09AF2704D843A5E4E84362830C7EC1CEA40DF8A |
+-------------------------------------------+
1 row in set (0.00 sec)
mysql>
Run Code Online (Sandbox Code Playgroud)
我很久以前从MySQL PASSWORD() 中的哈希算法中学到了这个算法
| 归档时间: |
|
| 查看次数: |
8540 次 |
| 最近记录: |