Masonite provides secure hashing for storing user passwords or other data. Bcrypt and Argon2 protocols can be used with Masonite (default is Bcrypt).
Configuration¶
Hashing configuration is located at config/application.py file. In this file, you can configure which protocol
to use.
config/application.py
HASHING = {
"default": "bcrypt",
"bcrypt": {"rounds": 10},
"argon2": {"memory": 1024, "threads": 2, "time": 2},
}
Hashing a string¶
You can use the Hash facade to easily hash a string (e.g. a password):
Note that you can return a hash as bytes with:
Checking a string matches a Hash¶
To check that a plain-text string corresponds to a given hash you can do:
Verifying a Hash needs to be re-hashed¶
You can determine if the work factor used by the hashing protocol has changed since the string was hashed using needs_rehash:
Options¶
You can change hashing protocol configuration on the fly for all Hash methods:
You can also change protocol on the fly: