# pw_hash A collection of password hashing and verification routines. This is a fork of the currently unmaintained `pwhash`, with updated dependencies. See the [documentation](https://docs.rs/pw_hash/) for API reference. ## Getting Started Add the following to the `[dependencies]` section of your `Cargo.toml`: ```toml pw_hash = "0.1" ``` ## Example ```rust use pw_hash::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`.