ठीक है, मैं जवाब के साथ सहमति व्यक्त करते हैं, लेकिन मुझे मूल सवालों के जवाब देने हैं।
पासवर्ड कैसे प्राप्त करें "जैसा कि Django इसे धोया होगा"?
def make_password(password, salt=None, hasher='default'):
"""
Turn a plain-text password into a hash for database storage
Same as encode() but generates a new random salt. If
password is None or blank then UNUSABLE_PASSWORD will be
returned which disallows logins.
"""
# ...
इस उदाहरण सत्र देखें::
के एक फ़ाइल django/contrib/auth/hashers.py
नजर डालते हैं
./manage.py shell
>>> from django.contrib.auth.hashers import make_password, HASHERS
>>> make_password('test')
'pbkdf2_sha256$10000$vkRy7QauoLLj$ry+3xm3YX+YrSXbri8s3EcXDIrx5ceM+xQjtpLdw2oE='
# fix salt:
>>> make_password('test', 'abc')
'pbkdf2_sha256$10000$abc$MqJS5OAgSmf9SD9mfoY8fgLo8sSKmEcef0AjjMp1Q7w='
# use different (maybe faster, maybe unsafe!) hasher
In [12]: HASHERS
Out[12]:
{'bcrypt': <django.contrib.auth.hashers.BCryptPasswordHasher object at 0x29c6d50>,
'crypt': <django.contrib.auth.hashers.CryptPasswordHasher object at 0x29c6f50>,
'md5': <django.contrib.auth.hashers.MD5PasswordHasher object at 0x29c6e10>,
'pbkdf2_sha1': <django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher object at 0x29c6bd0>,
'pbkdf2_sha256': <django.contrib.auth.hashers.PBKDF2PasswordHasher object at 0x29c6cd0>,
'sha1': <django.contrib.auth.hashers.SHA1PasswordHasher object at 0x29c6dd0>,
'unsalted_md5': <django.contrib.auth.hashers.UnsaltedMD5PasswordHasher object at 0x29c6ed0>,
'unsalted_sha1': <django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher object at 0x29c6e50>}
In [14]: [make_password('test', hasher=name) for name in HASHERS]
Out[14]:
['sha1$LdKsAbJRjlVP$2eb2346387cc510f576f2f11eebdfe18b20d1be1',
'pbkdf2_sha256$10000$Ck8gtWQJnJ9x$M/OqP548d5KcPqFuVRgXb84unjYbYDH6oyimbDndE3k=',
'pbkdf2_sha1$10000$BJqRu5OwylVF$hUvMLIzBujt9kPbML/dei1vLiMQ=',
'crypt$$d9grSeqDhMFek',
'098f6bcd4621d373cade4e832627b4f6',
'sha1$$a94a8fe5ccb19ba61c4c0873d391e987982fbbd3',
'bcrypt$$2a$12$WlJP5zm2lmdJ4g/pSE1xF.d/8w.XRT5mo/vGlkKdglBtzcxKw7XJS',
'md5$txHYmSYJKhD4$69286d4a1abd348fbddc9df7687e2ed4']
आप मैन्युअल क़मी बनाने की मशीन के encode
विधि का उपयोग कर सकते हैं, लेकिन इसके बाद के संस्करण उपयोगिता समारोह आप एक में शामिल किया गया है आसान तरीका
स्रोत
2014-05-05 11:51:20
हम्म - मुझे एक रिक्त डंप में परिणाम यहां के लिए यह करने के लिए कोशिश कर रहा। –
ठीक है - स्थानीय स्क्लाइट डीबी से काम करता है, लेकिन मुख्य mysql डीबी नहीं। क्या यह एक सुरक्षा सुविधा है? –
"यदि आप बहुत सारे परीक्षण उपयोगकर्ताओं की आवश्यकता है तो आप केवल एक नकली खाता बना सकते हैं और अपने शेष फिक्स्चर में हैश का उपयोग कर सकते हैं" -> इस टिप ने मुझे बचा लिया है! बहुत बहुत धन्यवाद :) – daveoncode