Skip to main content

quickstart/
quickstart.rs

1//! `cargo run --example quickstart`
2
3use secretgenerator::{PassphraseOptions, PasswordOptions, entropy, passphrase, password};
4
5fn main() -> Result<(), secretgenerator::Error> {
6    let pw = password(
7        PasswordOptions::default()
8            .length(24)
9            .charset("alphanum-symbols-v1")
10            .require_classes("lower,upper,digit,symbol"),
11    )?;
12    println!("password:    {} ({:.1} bits)", pw.password, pw.entropy_bits);
13
14    let phrase = passphrase(PassphraseOptions::default().words(8).separator("-"))?;
15    println!("passphrase:  {}", phrase.password);
16
17    let report = entropy("Tr0ub4dor&3")?;
18    println!("Tr0ub4dor&3: {:.1} bits", report.entropy_bits);
19    if let Some(ns) = report
20        .crack_time_estimates
21        .iter()
22        .find(|e| e.profile_id == "nation-state-v1")
23    {
24        println!("crack:       {} (nation-state)", ns.human_readable);
25    }
26    Ok(())
27}