How to use argon2 crate in Rust password hashing

Hash passwords in Rust using the argon2 crate with Argon2::default(), SaltString, and verify_password for secure authentication.

Use the argon2 crate by importing Argon2, PasswordHash, PasswordHasher, PasswordVerifier, and SaltString to hash passwords with hash_password and verify them with verify_password.

use argon2::{
    Argon2,
    password_hash::{PasswordHash, PasswordHasher, PasswordVerifier, SaltString},
};

fn main() {
    let password = b"secret";
    let salt = SaltString::generate(&mut rand::thread_rng());
    let argon2 = Argon2::default();
    let hash = argon2.hash_password(password, &salt).unwrap().to_string();

    let parsed_hash = PasswordHash::new(&hash).unwrap();
    let is_valid = Argon2::default()
        .verify_password(password, &parsed_hash)
        .is_ok();
    println!("Valid: {}", is_valid);
}