rcrypt
: A compact hashing and salting library based on bcrypt with smaller hashesrcrypt
, short for "reduced crypt" is a compact hashing and salting library based on bcrypt generating hashes that are 33.3% smaller than bcrypt. It was originally made for
a part of Skytable's authentication system storage, but
was moved into a separate library for usage in the wider Rust community.
rcrypt
is almost a drop-in replacement for the bcrypt
crate.
The smaller hash sizes are achieved by rcrypt's implementation of a hash+salt compression/decompression algorithm based on the BMCF spec. The hashes produced are binary hashes.
rust
use rcrypt::DEFAULT_COST;
// your password
let mypass = String::from("pass123");
// hash
let hash = rcrypt::hash(&mypass, DEFAULT_COST).unwrap();
// verify
assert!(rcrypt::verify(&mypass, &hash).unwrap());
The usage remains just the same for users who use the bcrypt crate, except that the hash
method returns a Vec<u8>
instead of a String
, while for the verify
method you need to pass a &[u8]
for the hash.
This crate is distributed under the Apache-2.0 License.