Fixed #3316 -- Added support for crypt hashing of passwords, mostly to support
easy porting from existing Unix-based legacy apps. Thanks, axiak@mit.edu. git-svn-id: http://code.djangoproject.com/svn/django/trunk@5073 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
5dfe74f221
commit
2a7d9ef23f
1
AUTHORS
1
AUTHORS
|
@ -49,6 +49,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
ant9000@netwise.it
|
ant9000@netwise.it
|
||||||
David Ascher <http://ascher.ca/>
|
David Ascher <http://ascher.ca/>
|
||||||
Arthur <avandorp@gmail.com>
|
Arthur <avandorp@gmail.com>
|
||||||
|
axiak@mit.edu
|
||||||
Jiri Barton
|
Jiri Barton
|
||||||
Ned Batchelder <http://www.nedbatchelder.com/>
|
Ned Batchelder <http://www.nedbatchelder.com/>
|
||||||
Shannon -jj Behrens <http://jjinux.blogspot.com/>
|
Shannon -jj Behrens <http://jjinux.blogspot.com/>
|
||||||
|
|
|
@ -17,6 +17,12 @@ def check_password(raw_password, enc_password):
|
||||||
elif algo == 'sha1':
|
elif algo == 'sha1':
|
||||||
import sha
|
import sha
|
||||||
return hsh == sha.new(salt+raw_password).hexdigest()
|
return hsh == sha.new(salt+raw_password).hexdigest()
|
||||||
|
elif algo == 'crypt':
|
||||||
|
try:
|
||||||
|
import crypt
|
||||||
|
except ImportError:
|
||||||
|
raise ValueError, "Crypt password algorithm not supported in this environment."
|
||||||
|
return hsh == crypt.crypt(raw_password, salt)
|
||||||
raise ValueError, "Got unknown password algorithm type in password."
|
raise ValueError, "Got unknown password algorithm type in password."
|
||||||
|
|
||||||
class SiteProfileNotAvailable(Exception):
|
class SiteProfileNotAvailable(Exception):
|
||||||
|
|
|
@ -204,9 +204,11 @@ The ``password`` attribute of a ``User`` object is a string in this format::
|
||||||
|
|
||||||
That's hashtype, salt and hash, separated by the dollar-sign character.
|
That's hashtype, salt and hash, separated by the dollar-sign character.
|
||||||
|
|
||||||
Hashtype is either ``sha1`` (default) or ``md5`` -- the algorithm used to
|
Hashtype is either ``sha1`` (default), ``md5`` or ``crypt`` -- the algorithm
|
||||||
perform a one-way hash of the password. Salt is a random string used to salt
|
used to perform a one-way hash of the password. Salt is a random string used
|
||||||
the raw password to create the hash.
|
to salt the raw password to create the hash. Note that the ``crypt`` method is
|
||||||
|
only supported on platforms that have the standard Python ``crypt`` module
|
||||||
|
available.
|
||||||
|
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue