From 477274d099cd07f2fa1bc60e0acaf3af8d9830ae Mon Sep 17 00:00:00 2001 From: Vika Date: Mon, 19 Sep 2022 17:33:58 +0300 Subject: Add test password hasher --- kittybox-rs/examples/password-hasher.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 kittybox-rs/examples/password-hasher.rs diff --git a/kittybox-rs/examples/password-hasher.rs b/kittybox-rs/examples/password-hasher.rs new file mode 100644 index 0000000..2cba606 --- /dev/null +++ b/kittybox-rs/examples/password-hasher.rs @@ -0,0 +1,33 @@ +use std::io::Write; + +use argon2::{Argon2, password_hash::{rand_core::OsRng, PasswordHasher, PasswordHash, PasswordVerifier, SaltString}}; + +fn main() -> std::io::Result<()> { + print!("Type a password: "); + std::io::stdout().flush().unwrap(); + let password = { + let mut s = String::new(); + std::io::stdin().read_line(&mut s)?; + + s + }; + + let salt = SaltString::generate(&mut OsRng); + let argon2 = Argon2::default(); + println!("{}", password.trim()); + let password_hash = argon2.hash_password(password.trim().as_bytes(), &salt) + .expect("Hashing a password should not error out") + .serialize(); + + println!("{}", password_hash.as_str()); + + assert!(Argon2::default() + .verify_password( + password.trim().as_bytes(), + &PasswordHash::new(password_hash.as_str()) + .expect("Password hash should be valid") + ).is_ok() + ); + + Ok(()) +} -- cgit 1.4.1