#暴力破解 #哈希 #密码 #多线程

libbruteforce

这个库帮助您暴力破解哈希(例如密码)。它包括一组预配置的哈希函数,如md5或sha256。您也可以提供自己的哈希函数。请勿使用此软件以任何方式侵犯他人隐私!本项目旨在娱乐和学习关于Rust的新知识。

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次下载

MIT授权

76KB
1K SLoC

libbruteforce - 使用多线程暴力破解哈希的Rust库

该库为您的系统上的每个CPU启动一个线程来暴力破解密码/哈希。它提供对MD5、SHA1和SHA256的内置支持,但您也可以作为参数提供自己的哈希函数。

您可以为限制搜索空间指定自己的字母表,或使用内部硬编码的符号(最常见的字符)。

仅限娱乐!

我进行这个项目只是为了娱乐和学习新知识。请不要用它来侵犯他人的隐私!

最高性能

如果您在项目中使用它:要使Rust编译器生成具有最大性能的二进制文件,请遵循以下步骤

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