如何解密MySQL密码

Mik*_*ike 17 mysql

创建我公司使用的平台的开发人员不再为我们工作,我不知道如何从自定义PHP应用程序中检索密码

当我查看PHPmyAdmin时,密码是ecrypted(例如*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19)

我该如何更改或检索这些?

Pek*_*ica 17

如果使用了正确的加密方法,则无法轻松检索它们.

只需使用新密码重置它们即可.

编辑:字符串看起来像它正在使用PASSWORD():

UPDATE user SET password = PASSWORD("newpassword");
Run Code Online (Sandbox Code Playgroud)

  • @DrDeo 好吧,。这不太正确。首先,MySQL 使用自己的 SHA1 和 unhex 组合方法进行密码哈希。其次,MD5 已被“破解”,您可以从两个不同的输入生成完全相同的哈希值(因为 MD5 的算法失败设计)。这意味着,攻击者可以使用自己生成的密码将自己标识为合法密码(因为他计算了冲突哈希),但他永远无法知道原始密码是什么。这是不可逆的。此外,您提供的只是已知输入和哈希值的数据库。 (2认同)

jww*_*jww 17

如何解密MySQL密码

你不能真的因为它们是经过哈希处理而不是加密的.

PASSWORD是当前MySQL使用的函数的本质.你可以从sql终端执行它:

mysql> SELECT SHA1(UNHEX(SHA1("password")));

+------------------------------------------+
| SHA1(UNHEX(SHA1("password")))            |
+------------------------------------------+
| 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我该如何更改或检索这些?

如果您在登录debian或ubuntu系统时遇到问题,请首先尝试此操作(感谢tohuwawohu,网址https://askubuntu.com/questions/120718/cant-log-to-mysql):

$ sudo cat /etc/mysql/debian.conf | grep -i password
...
password: QWERTY12345...
Run Code Online (Sandbox Code Playgroud)

然后,使用debian维护用户登录:

$ mysql -u debian-sys-maint -p
password:
Run Code Online (Sandbox Code Playgroud)

最后,更改用户的密码:

mysql> UPDATE mysql.user SET Password=PASSWORD('new password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit;
Run Code Online (Sandbox Code Playgroud)

当我查看PHPmyAdmin时,密码是加密的

相关的,如果您需要转储用户数据库以获取相关信息,请尝试:

mysql> SELECT User,Host,Password FROM mysql.user;
+------------------+-----------+----------------------+
| User             | Host      | Password             |
+------------------+-----------+----------------------+
| root             | localhost | *0123456789ABCDEF... |
| root             | 127.0.0.1 | *0123456789ABCDEF... |
| root             | ::1       | *0123456789ABCDEF... |
| debian-sys-maint | localhost | *ABCDEF0123456789... |
+------------------+-----------+----------------------+
Run Code Online (Sandbox Code Playgroud)

是的,那些密码不受腌制.因此,攻击者可以预先构建表并将其应用于所有MySQL安装.此外,攻击者可以了解哪些用户具有相同的密码.

有人说,mySQL的人不遵循最佳实践.John Steven在OWASP的密码存储备忘单上做了一篇关于密码存储最佳实践的优秀论文.为了公平对待MySQL人员,他们可能会因为架构,设计或实现方面的痛点(我根本不知道)而这样做.


如果您使用PASSWORDUPDATE命令并且更改不起作用,请参阅http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html.即使该页面被命名为"重置权限",它的确如何更改密码.(它令人迷惑的MySQL密码更改程序如此破碎,你必须跳过箍,但它就​​是这样).


Kri*_*hna 7

散列是一个单向过程,但使用密码列表,您可以重新生成散列并与存储的散列进行比较以"破解"密码.

这个站点https://crackstation.net/尝试为您执行此操作 - 运行密码列表并根据您的哈希告诉您明文密码.

  • 这可能适用于简单/通用密码,如hello,welcome等,但并非所有可能的组合都是其已知列表的一部分. (2认同)