MySQL中忘记用户密码怎么办?MySQL如何获取用户密码

  • Post author:
  • Post category:mysql


日常使用MySQL的过程中我们时常会遇到忘记用户密码的情况,面对这种情况我们该如何解决呢?直接更改用户密码?当然这是可行的,但对于有大量运用的数据库直接更改密码牵连很多,所以并不提倡这种方式,哪该怎么做呢?咱是不是可以反向破解密码呢?

答案是肯定的。这篇文章主要就讲述MySQL如何破解密码。



一、获取用户密码

首先,我们知道MySQL中有专门存放用户信息的表,即mysql库中的user表。其中字段user即为用户名,password字段为用户密码,需要注意的是MySQL5.7及之后的版本用的都是authentication_string字段替代以前的password字段。

-- 查询数据库的用户名、密码
select user,password from mysql.user;-- mysql5.7之前
select user,authentication_string from mysql.user;-- mysql5.7及之后



二、MYSQL加密方式

先附上官网的解释:


https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_password

(1)MYSQL 4.1版本之前是

MYSQL323

加密,生成的是经过加密的16位字符串,用的Old_Password(str)。

例:MYSQL323= 10c886615b135b38

(2)MYSQL 4.1和之后的版本都是

MYSQLSHA1

加密,生成的是经过加密的40位字符串(前面的*不算在内,后面破解密码也不带这个星号),用的Password(str)。注意:mysql8.0.11移除了password()函数。

例:MYSQLSHA1= *A2EBAE36132928537ADA8E6D1F7C5C5886713CC2

(3)md(str)

计算字符串的MD5 128位校验和。该值以32个十六进制数字的字符串返回,或者 NULL如果参数为 NULL。例如,该返回值可用作哈希键。

返回值是连接字符集中的字符串。如果启用了FIPS模式,则 MD5()返回 NULL。

密码长度查看:

select length(password(‘xxxxxx’));

select length(old_password(‘xxxxx’));



三、破解方式

这里提供一个我用过的在线破解网站:

somd5.com


还有很多破解方式,我没有一一测试,可参考

https://www.cnblogs.com/ichunqiu/p/7810914.html

中的内容。



版权声明:本文为qq_16268979原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。