8 个稳定版本

1.1.3 2020年8月20日
1.0.3 2020年8月19日

#pwd 中排名 #7

MIT 许可证

19KB
262 行代码(不包括注释)

随机密码生成器

什么是

这是一个关于生成随机密码的库。

为什么

为了学习 Rust。

要求

Rust 1.39 或更高版本。

试试看

$ git clone https://github.com/TENX-S/rand_pwd
$ cd rand_pwd

# Default case: amount of letters: 10, symbols: 2, numbers: 3
$ cargo run --release --example rpg_test

# Specify the parameter: amount of letters: 16, symbols: 2, numbers: 3
$ cargo run --release --example rpg_test 16 2 3

# Try a larger number!
$ cargo run --release --example rpg_test 200000 200 300

注意!

不要 尝试一个非常大的数字,即使程序允许,比如 i128::MAX,除非你拥有极大的 RAM 和强大的 CPU,否则可能会因为未设置正确的 单元 数而导致 蓝屏或任何不可预测的行为,这可能会损害你的计算机硬件或未保存的文件。

在任何情况下,使用此库及其结果,任何人都不对您的行为负责。

用法

Cargo.toml

rand_pwd = "1"

您可能想使用最新的功能(可能需要 nightly Rust)

rand_pwd = { git = "https://github.com/TENX-S/rand_pwd", branch = "master" }

以下是部分 API 的简单演示

use rand_pwd::{ RandPwd, ToRandPwd };

fn main() {

    let mut r_p = RandPwd::new(10, 2, 3); // For now, it's empty. Use method `join` to generate the password
    r_p.join();                           // Now `r_p` has some content, be kept in its `content` field
    println!("{}", r_p);                  // Print it on the screen
    // One possible output: 7$pA7yMCw=2DPGN

    // Or you can build from an existing `&str`
    let mut r_p = RandPwd::from("=tE)n5f`sidR>BV"); // 10 letters, 4 symbols, 1 number 
    // You can rebuild a random password and with equivalent amount of letters, symbols and numbers. Like below
    r_p.join();
    println!("{}", r_p); 
    // One possible output: qS`Xlyhpmg~"V8[
    
    // All the `String` and `&str` has implemented trait `ToRandPwd`
    // which means you can use method `to_randpwd` to convert a `String` or `&str` to `RandPwd`
    
    let mut r_p = "n4jpstv$dI,.z'K".to_randpwd().unwrap();

    // Panic! Has non-ASCII character(s)!
    // let mut r_p = RandPwd::from("🦀️🦀️🦀️"); 
    // let mut r_p = "🦀️🦀️🦀️".to_randpwd(); 
}   

贡献

欢迎任何 PR!

许可证

MIT

依赖项

~3MB
~62K SLoC