2016-12-01 6 views
-1

Я использую Flask для разработки небольшой веб-службы, пароль пользователя хранится в mysql после использования generate_password_hash. : пароль = "123345", хранимое значение в mysql равно generate_password_hash(12345).Как разобрать пароль, который хэшируется с помощью generate_password_hash?

Не хочу, чтобы функция выполняла проверку моего пароля, но я встречаю проблему при распаковке сохраненного пароля.

как конвертировать generate_password_hash(12345) в 12345?

+4

Точка хеширования паролей предназначена специально для того, чтобы никто не мог это сделать. – user2357112

+0

@ user2357112 Итак, как создать функцию для возврата моего пароля? – BlackMamba

+2

У вас нет. Если вы пытаетесь проверить попытки входа в систему, вы проверяете, соответствует ли пароль, предоставленный пользователем, хешу. Если вы пытаетесь реализовать функцию восстановления паролей, используйте функцию сброса пароля. – user2357112

ответ

3

От Wikipedia:

[MD5] представляет собой математический алгоритм, который отображает данные произвольного размера в виде битовой строки фиксированного размера (хэш-функции), который предназначен для быть также односторонним функция, то есть функция, которая недопустима для инвертирования.

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

1

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

Это говорит о том, что там есть программы для развязки, которые требуют много мощности процессора и работают долгое время, что может дешифровать очень простые пароли.

Если вы хотите, чтобы у вас был очень простой (и очень неэффективный) беспорядок, вам необходимо в принципе передать все возможные пароли через функцию generate_password_hash, пока не найдете тот, который генерирует один и тот же хэш. В основном, начиная со всех паролей с одним символом, затем отправляя пароли на 2 символа и т. Д. Много написано о том, как сделать это более эффективно онлайн.