class documentation

class BasePasswordHasher:

Known subclasses: django.contrib.auth.hashers.Argon2PasswordHasher, django.contrib.auth.hashers.BCryptSHA256PasswordHasher, django.contrib.auth.hashers.CryptPasswordHasher, django.contrib.auth.hashers.MD5PasswordHasher, django.contrib.auth.hashers.PBKDF2PasswordHasher, django.contrib.auth.hashers.ScryptPasswordHasher, django.contrib.auth.hashers.SHA1PasswordHasher, django.contrib.auth.hashers.UnsaltedMD5PasswordHasher, django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher

View In Hierarchy

Abstract base class for password hashers

When creating your own hasher, you need to override algorithm, verify(), encode() and safe_summary().

PasswordHasher objects are immutable.

Method ​_check​_encode​_args Undocumented
Method ​_load​_library Undocumented
Method decode Return a decoded database value.
Method encode Create an encoded database value.
Method harden​_runtime Bridge the runtime gap between the work factor supplied in encoded and the work factor suggested by this hasher.
Method must​_update Undocumented
Method safe​_summary Return a summary of safe values.
Method salt Generate a cryptographically secure nonce salt in ASCII with an entropy of at least salt_entropy bits.
Method verify Check if the given password is correct.
Class Variable algorithm Undocumented
Class Variable library Undocumented
Class Variable salt​_entropy Undocumented
def _check_encode_args(self, password, salt):

Undocumented

def _load_library(self):

Undocumented

def harden_runtime(self, password, encoded):

Bridge the runtime gap between the work factor supplied in encoded and the work factor suggested by this hasher.

Taking PBKDF2 as an example, if encoded contains 20000 iterations and self.iterations is 30000, this method should run password through another 10000 iterations of PBKDF2. Similar approaches should exist for any hasher that has a work factor. If not, this method should be defined as a no-op to silence the warning.

salt_entropy: int =

Undocumented