16 lines
593 B
Rust
16 lines
593 B
Rust
use argon2::password_hash::{SaltString, rand_core::OsRng};
|
|
use argon2::{Argon2, PasswordHash, PasswordHasher, PasswordVerifier};
|
|
|
|
pub fn hash_password(password: &str) -> Result<String, argon2::password_hash::Error> {
|
|
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()
|
|
}
|