Skip to main content

max / makenotwork

642 B · 25 lines History Blame Raw
1 //! Generate an Argon2 password hash for seed data.
2 //!
3 //! Usage: cargo run --example hash_password -- <password>
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