Uploaded Day 3 Files
This commit is contained in:
parent
48a061701e
commit
cd1a869bbc
10
sha1_cracker/Cargo.toml
Normal file
10
sha1_cracker/Cargo.toml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[package]
|
||||||
|
name = "sha1_cracker"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
sha-1 = "0.10"
|
||||||
|
hex = "0.4"
|
40
sha1_cracker/src/main.rs
Normal file
40
sha1_cracker/src/main.rs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
use sha1::Digest;
|
||||||
|
use std::{
|
||||||
|
env,
|
||||||
|
error::Error,
|
||||||
|
fs::File,
|
||||||
|
io::{BufRead, BufReader},
|
||||||
|
};
|
||||||
|
|
||||||
|
const SHA1_HEX_STRING_LENGTH: usize = 40;
|
||||||
|
|
||||||
|
fn main() -> Result<(), Box<dyn Error>> {
|
||||||
|
let args: Vec<String> = env::args().collect();
|
||||||
|
|
||||||
|
if args.len() != 3{
|
||||||
|
println!("Usage:");
|
||||||
|
println!("sha1_cracker: <wordlist.txt> <sha1_hash>");
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
let hash_to_crack = args[2].trim();
|
||||||
|
if hash_to_crack.len() != SHA1_HEX_STRING_LENGTH {
|
||||||
|
return Err("sha1 hash is not valid".into());
|
||||||
|
}
|
||||||
|
|
||||||
|
let wordlist_file = File::open(&args[1])?;
|
||||||
|
let reader = BufReader::new(&wordlist_file);
|
||||||
|
|
||||||
|
for line in reader.lines() {
|
||||||
|
let line = line?;
|
||||||
|
let common_password = line.trim();
|
||||||
|
if hash_to_crack == &hex::encode(sha1::Sha1::digest(common_password.as_bytes())) {
|
||||||
|
println!("Password found: {}", &common_password);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("password not found in wordlist :(");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
2506
sha1_cracker/wordlist.txt
Normal file
2506
sha1_cracker/wordlist.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user