Для SHA512-хеша пароль в базе данных MySQL от Python

Этот вопрос основан на ответе.

Я хотел бы знать, как вы можете хэшировать свой пароль с помощью SHA1, а затем удалить открытый текстовый пароль в базе данных MySQL с помощью Python.

Как вы можете хэшировать свой пароль в базе данных MySQL от Python?

4 ответа

Решение

Как сказано в документации, вы должны использовать библиотеку hashlib, а не sha с python 2.5.

Сделать хеш довольно легко.

hexhash = hashlib.sha512("some text").hexdigest()

Этот шестнадцатеричный номер будет легко хранить в базе данных.

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

http://docs.python.org/library/sha.html

Документация Python объясняет это намного лучше, чем я.

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

Тем не менее, вы можете использовать библиотеку sha, как сказал scrager (до Python 2.5), и библиотеку hashlib, как сказал Дэвид Разник в более новых версиях Python.

Другие вопросы по тегам