from inetSVN/Django/django/contrib/auth/models.py:
======================================================
def check_password(raw_password, enc_password):
“”“
Returns a boolean of whether the raw_password was correct. Handles
encryption formats behind the scenes.
”“”
algo, salt, hsh = enc_password.split('$')
if algo == ‘md5’:
import md5
return hsh == md5.new(salt+raw_password).hexdigest()
elif algo == ‘sha1’:
import sha
return hsh == sha.new(salt+raw_password).hexdigest()
raise ValueError, “Got unknown password algorithm type in password.”
======================================================
Т.е.
1)Поддерживаются два алгоритма MD5 и SHA1 и они могут использоватся одновременно
(для разных паролей). Правда в свете того что MD5 уже почти год как поломали реально
можно только sha1 использовать.
2)Прикручен salt - это означает что у двух одинаковых паролей хеши в базе будут разные
======================================================