6 releases (1 stable)
1.0.0 | Jan 3, 2021 |
---|---|
0.3.1 | Jul 8, 2020 |
0.3.0 | Jan 13, 2019 |
0.2.0 | May 9, 2018 |
0.1.1 | Feb 9, 2016 |
#1535 in Cryptography
58,716 downloads per month
Used in 22 crates
(15 directly)
105KB
1.5K
SLoC
pwhash
A collection of password hashing and verification routines.
See the documentation for API reference.
Getting Started
Add the following to the [dependencies]
section of your Cargo.toml
:
pwhash = "1"
Example
use pwhash::bcrypt;
// Hash a password with default parameters.
let h_new = bcrypt::hash("password").unwrap();
// Verify a password against an existing hash.
let h = "$2y$05$bvIG6Nmid91Mu9RcmmWZfO\
5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe";
assert!(bcrypt::verify("password", h));
Summary
The following algorithms are currently implemented (in alphabetical order):
-
bcrypt
-
bsdi_crypt
-
md5_crypt
-
sha1_crypt
-
sha256_crypt
-
sha512_crypt
-
unix_crypt
Each algorithm resides in its eponymous module, and provides the following interface:
-
verify()
: verify a password against a hash. -
hash()
: hash a password with default algorithm-spacific parameters. -
hash_with()
: hash a password with customized parameters.
There is also a convenience module unix
which provides the functions
unix::crypt
, a crypt(3) work-alike, and unix::verify
.
Dependencies
~1MB
~21K SLoC