use libbruteforce::hash_fncs::{md5_hashing, no_hashing, sha1_hashing, sha256_hashing};
use libbruteforce::{crack, symbols, BasicCrackParameter, CrackParameter, TargetHashInput};
fn main() {
let algo = "md5";
let alphabet = symbols::Builder::new().with_digits().build();
let basic_param = BasicCrackParameter::new(alphabet, 5, 0, true);
let user_input = "my-awesome-hash";
let res = match algo {
"md5" => crack(CrackParameter::new(
basic_param,
md5_hashing(TargetHashInput::Plaintext(user_input)),
)),
"sha1" => crack(CrackParameter::new(
basic_param,
sha1_hashing(TargetHashInput::Plaintext(user_input)),
)),
"sha256" => crack(CrackParameter::new(
basic_param,
sha256_hashing(TargetHashInput::Plaintext(user_input)),
)),
"identity" => crack(CrackParameter::new(
basic_param,
no_hashing(TargetHashInput::Plaintext(user_input)),
)),
_ => panic!("invalid algorithm"),
};
println!("{:#?}", res);
}