A pure rust implementation of the bcrypt hashing function based on the Blowfish cipher. Full API documentation can be found at
Modify your Cargo.toml file:
toml
[dependencies]
bcrypter = "0.1.0"
```rust extern crate bcrypter; use bcrypter::password;
let pw = "hunter2".tostring(); let result = password(pw).hash().unwrap(); let bcrypthashstring = result.hashstring; ```
rust
let result = password(pw)
.cost(6)
.hash()
.unwrap();
rust
let salt = [0u8; 16];
let result = password(pw)
.salt(salt)
.cost(8)
.hash()
.unwrap();
rust
let known_hash = "$2a$04$7eAf8viXin8zazyvaU2HLuZGEbvaHy/lsnlG.HFWkBST5irHhXKJO".to_string();
let correct_password : bool = password(pw)
.verify(known_hash)
.unwrap()
rust
let result = password(pw).hash().unwrap();
let digest_bytes : [u8: 24] = result.digest;
The default cost is 12
A random 16 byte array is used when no salt parameter is provided.
The maximum password input is 72 bytes, anything over that will be truncated rather than raise an error. If you need larger inputs consider hashing it beforehand.