Подтвердить что ты не робот

Как я могу дешифровать пароли MySQL?

Разработчик, создавший платформу, которую использует моя компания, больше не работает для нас, и я не знаю, как я могу получить пароли из пользовательского приложения PHP

Когда я смотрю в PHPmyAdmin, пароли зашифровываются (например, * 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19)

Как я могу изменить или получить их?

4b9b3361

Ответ 1

Если был применен правильный метод шифрования, невозможно будет легко получить их.

Просто reset с новыми паролями.

Изменить: Строка выглядит так: PASSWORD():

UPDATE user SET password = PASSWORD("newpassword");

Ответ 2

Как я могу дешифровать пароли MySQL

Вы не можете на самом деле, потому что они хэшированы, а не зашифрованы.

Вот суть функции PASSWORD, которую использует текущий MySQL. Вы можете выполнить его из терминала sql:

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

+------------------------------------------+
| SHA1(UNHEX(SHA1("password")))            |
+------------------------------------------+
| 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+------------------------------------------+
1 row in set (0.00 sec)

Как я могу изменить или получить их?

Если у вас возникли проблемы с входом в систему debian или ubuntu, сначала попробуйте это (спасибо tohuwawohu на https://askubuntu.com/questions/120718/cant-log-to-mysql):

$ sudo cat /etc/mysql/debian.conf | grep -i password
...
password: QWERTY12345...

Затем войдите в систему с пользователем обслуживания debian:

$ mysql -u debian-sys-maint -p
password:

Наконец, измените пароль пользователя:

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

Когда я смотрю в 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... |
+------------------+-----------+----------------------+

И да, эти пароли НЕ соленые. Таким образом, злоумышленник может предварительно создать таблицы и применить их ко всем установкам MySQL. Кроме того, противник может узнать, какие пользователи имеют одинаковые пароли.

Игла говорит, что люди на mySQL не следуют лучшим практикам. Джон Стивен сделал отличную статью по передовой практике хранения паролей в OWASP "Чехол для хранения паролей" . Справедливости ради к людям MySQL они могут делать это из-за болевых точек в архитектуре, дизайне или реализации (я просто не знаю).


Если вы используете команды PASSWORD и UPDATE, и это изменение не работает, см. http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html. Несмотря на то, что страница называется "сброс разрешений", она действительно о том, как сменить пароль. (Его одурманивание процедуры изменения пароля MySQL настолько нарушено, что вам нужно перепрыгнуть через обручи, но это то, что есть).

Ответ 3

Хеширование - это односторонний процесс, но с использованием списка паролей вы можете регенерировать хэши и сравнивать с сохраненным хешем, чтобы "взломать" пароль.

Этот сайт https://crackstation.net/ пытается сделать это за вас - запустите списки паролей и сообщите пароль с открытым текстом на основе вашего хэша.

Ответ 4

Если повезет, если оригинальный разработчик был хорош, вы не сможете получить простой текст. Я говорю "удача", иначе у вас, вероятно, есть небезопасная система.

Для паролей администратора, так как у вас есть код, вы должны иметь возможность создавать хэшированные пароли из известного простого текста, чтобы вы могли управлять этим приложением. Следуйте алгоритму, используемому оригинальным разработчиком.

Если они не были солены и хешированы, убедитесь, что вы применяете это как "лучшую практику"

Ответ 5

просто измените их на password('yourpassword')

Ответ 6

Вы не можете расшифровать пароль в mysql, потому что пароль хешируется с помощью алгоритма md5 hash, который не является алгоритмом кодирования.