1个稳定版本
1.0.2 | 2024年3月9日 |
---|
#1199 in 加密学
18KB
136 行
FerroPassGen
ferropassgen
是一个用于生成强大和安全密码及口令的Rust库。它提供了一个灵活且可定制的密码生成框架,可以轻松集成到其他Rust项目中。
特性
- 生成可自定义长度和字符集的强密码
- 生成可自定义长度、单词列表、分隔符和单词大小写的记忆口令
- 轻量级且快速地生成密码
- 可扩展和可定制的密码生成特性
- API文档良好,包含示例和错误处理
用法
要在您的Rust项目中使用 ferropassgen
,请将以下内容添加到您的 Cargo.toml
[dependencies]
ferropassgen = "0.1.0"
然后,在您的Rust代码中导入必要的模块和结构体
use ferropassgen::{PassGen, PasswordGen, PassphraseGen, PassGenError};
生成密码
要生成密码,创建一个 PasswordGen
实例并调用 generate
方法
let length = 16;
let charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*".chars().collect::<Vec<char>>();
let password_gen = PasswordGen::new(length, charset, None, None)?;
let password = password_gen.generate();
生成口令
要生成口令,创建一个 PassphraseGen
实例并调用 generate
方法
let length = 4;
let wordlist = vec!["apple", "banana", "cherry", "date", "elderberry"]
.iter()
.map(|&s| s.to_string())
.collect::<Vec<String>>();
let separator = Some('_');
let word_case = Some(true);
let passphrase_gen = PassphraseGen::new(length, wordlist, separator, word_case)?;
let passphrase = passphrase_gen.generate();
错误处理
PasswordGen
和 PassphraseGen
的 new
方法返回一个 Result<Self, PassGenError>
。请确保适当地处理潜在的错误。
示例
以下是一些使用 ferropassgen
生成密码和口令的示例
use ferropassgen::{PassGen, PasswordGen, PassphraseGen};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Generate a 20-character password with a custom character set
let length = 20;
let charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".chars().collect::<Vec<char>>();
let password_gen = PasswordGen::new(length, charset, None, None)?;
let password = password_gen.generate();
println!("Generated Password: {}", password);
// Generate a passphrase with 5 words, separated by underscores, and in uppercase
let length = 5;
let wordlist = vec!["apple", "banana", "cherry", "date", "elderberry"]
.iter()
.map(|&s| s.to_string())
.collect::<Vec<String>>();
let separator = Some('_');
let word_case = Some(true);
let passphrase_gen = PassphraseGen::new(length, wordlist, separator, word_case)?;
let passphrase = passphrase_gen.generate();
println!("Generated Passphrase: {}", passphrase);
Ok(())
}
API文档
有关 ferropassgen
API的详细信息,包括结构体、特性和方法,请参阅API文档。
许可证
本项目采用GNU Lesser General Public License v3.0 许可。
鸣谢
ferropassgen
源于在Rust中需要一个灵活且可定制的密码生成库的需求。它建立在Rust社区及其创建的库的优秀工作之上。
特别感谢以下库的开发者
依赖关系
~0.5-1MB
~22K SLoC