Форум сайта python.su
как лучше шифровать пароли?
и как лучше всего и потом сравнивать(проверять)?
p.s. сейчас пытаюсь использовать cryptacular.bcrypt.BCRYPTPasswordManager.
генерю пароль сохраняю его в postgresql, затем пытаюсь авторизоваться, но ни чего не выходит, не проходит сравнение check(шифрованый пароль, введенный пароль).
Офлайн
Я обычно использую код, который выдрал из джанги и немного упростил:
from hashlib import sha1
def hash_password(password):
"""
Генерирует новый пароль пользователя
"""
salt = randrange(1000, 10000)
return u'%s$%s' % (salt, sha1((u'%s$%s' % (salt, password)).\
encode('utf-8')).hexdigest())
def check_password(pw_hash, password):
"""
Проверяет соответствие пароля пользователя
"""
if pw_hash is None: return False
salt, pwhash = pw_hash.split('$', 1)
check = sha1((u'%s$%s' % (salt, password)).encode('utf-8')).hexdigest()
return check == pwhash
Офлайн