| 1 |
|
| 2 |
|
| 3 |
|
| 4 |
|
| 5 |
use argon2::{ |
| 6 |
password_hash::{rand_core::OsRng, PasswordHasher, SaltString}, |
| 7 |
Argon2, |
| 8 |
}; |
| 9 |
use std::env; |
| 10 |
|
| 11 |
fn main() { |
| 12 |
let args: Vec<String> = env::args().collect(); |
| 13 |
let password = args.get(1).map(|s| s.as_str()).unwrap_or("demo123"); |
| 14 |
|
| 15 |
let salt = SaltString::generate(&mut OsRng); |
| 16 |
let argon2 = Argon2::default(); |
| 17 |
|
| 18 |
let hash = argon2 |
| 19 |
.hash_password(password.as_bytes(), &salt) |
| 20 |
.expect("Failed to hash password"); |
| 21 |
|
| 22 |
println!("Password: {}", password); |
| 23 |
println!("Hash: {}", hash); |
| 24 |
} |
| 25 |
|