use argon2::password_hash::{SaltString, rand_core::OsRng}; use argon2::{Argon2, PasswordHash, PasswordHasher, PasswordVerifier}; pub fn hash_password(password: &str) -> Result { let salt = SaltString::generate(&mut OsRng); let hash = Argon2::default().hash_password(password.as_bytes(), &salt)?; Ok(hash.to_string()) } pub fn verify_password(password: &str, stored_hash: &str) -> bool { let parsed = PasswordHash::new(stored_hash).unwrap(); Argon2::default() .verify_password(password.as_bytes(), &parsed) .is_ok() }