9个稳定版本 (3个主要版本)
4.0.1 | 2022年1月29日 |
---|---|
3.0.1 | 2022年1月29日 |
3.0.0 | 2021年10月19日 |
2.2.2 | 2020年12月6日 |
1.0.1 | 2020年1月11日 |
#438 in 算法
每月30次下载
76KB
1K SLoC
libbruteforce - 使用多线程暴力破解哈希的Rust库
该库为您的系统上的每个CPU启动一个线程来暴力破解密码/哈希。它提供对MD5、SHA1和SHA256的内置支持,但您也可以作为参数提供自己的哈希函数。
您可以为限制搜索空间指定自己的字母表,或使用内部硬编码的符号(最常见的字符)。
仅限娱乐!
我进行这个项目只是为了娱乐和学习新知识。请不要用它来侵犯他人的隐私!
最高性能
如果您在项目中使用它:要使Rust编译器生成具有最大性能的二进制文件,请遵循以下步骤
- https://www.reddit.com/r/rust/comments/lyck1u/compiling_for_maximum_performance/
- https://deterministic.space/high-performance-rust.html
MSRV
1.56.1
支持的平台
Linux、MacOS、Windows(带有Rust标准库的目标)
性能提示
始终以发布模式执行使用此库的二进制文件,例如 cargo run --bin bench --release
。否则,性能真的很差。有关最大Rust性能的信息,请参阅:https://deterministic.space/high-performance-rust.html
示例用法
use libbruteforce::hash_fncs::sha256_hashing;
use libbruteforce::BasicCrackParameter;
use libbruteforce::{symbols, CrackParameter, TargetHashInput};
use simple_logger::SimpleLogger;
/// Minimal example.
fn main() {
// to get information about trace! logs (like progress) on the console
SimpleLogger::new().with_utc_timestamps().init().unwrap();
let alphabet = symbols::Builder::new()
.with_lc_letters()
.with_common_special_chars()
.build();
// sha256("a+c")
let sha256_hash = "3d7edde33628331676b39e19a3f2bdb3c583960ad8d865351a32e2ace7d8e02d";
// the actual cracking
let res = libbruteforce::crack(CrackParameter::new(
BasicCrackParameter::new(alphabet, 3, 0, true),
sha256_hashing(TargetHashInput::HashAsStr(sha256_hash)),
));
if let Some(solution) = res.solution() {
println!("Password is: {}", solution);
println!("Took {:.3}s", res.duration_in_seconds());
}
}
GitHub上的README:https://github.com/phip1611/bruteforcer docs.rs上的文档:https://docs.rs/libbruteforce/
依赖关系
~480–650KB
~15K SLoC