#password #hash #hashing #crypt

pwhash

A collection of password hashing routines in pure Rust

2 releases

0.1.2 Apr 1, 2017
0.1.1 Feb 9, 2016

#100 in Cryptography

Download history 20/week @ 2018-06-08 42/week @ 2018-06-15 24/week @ 2018-06-22 74/week @ 2018-06-29 15/week @ 2018-07-06 28/week @ 2018-07-13 27/week @ 2018-07-20 34/week @ 2018-07-27 45/week @ 2018-08-03 47/week @ 2018-08-10 16/week @ 2018-08-17 35/week @ 2018-08-24 38/week @ 2018-08-31

138 downloads per month
Used in 4 crates

MIT license

104KB
1.5K SLoC

pwhash

Build Status

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 = "0.2"

Also, import the crate in your crate root:

extern crate pwhash;

Example

extern crate pwhash;

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

~3.5MB
~43K SLoC