Skip to main content

max / makenotwork

644 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 Argon2,
7 password_hash::{PasswordHasher, SaltString, rand_core::OsRng},
8 };
9 use std::env;
10
11 fn main() {
12 let args: Vec<String> = env::args().collect();
13 let password = args.get(1).map_or("demo123", std::string::String::as_str);
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