diff options
Diffstat (limited to 'aoc5/src')
-rw-r--r-- | aoc5/src/main.rs | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/aoc5/src/main.rs b/aoc5/src/main.rs deleted file mode 100644 index 31bef5e..0000000 --- a/aoc5/src/main.rs +++ /dev/null @@ -1,49 +0,0 @@ -extern crate md5; - -fn main() { - let room = "reyedfim"; - - let mut i = 0; - let mut found_bytes = 0; - - let mut code: [Option<u8>; 8] = [None;8]; - - println!("Cracking the passwordz"); - print_code(&code); - - while found_bytes < 8 { - let room_string = format!("{}{}", room, i); - let room_bytes = room_string.into_bytes(); - let hash = md5::compute(room_bytes.as_slice()); - if match_hash(hash) { - let position = hash[2]; - let value = hash[3] / 16; - if code[position as usize].is_none() { - code[position as usize] = Some(value); - print_code(&code); - found_bytes += 1; - } - } - - i+=1; - } - - println!("Password found!"); -} - -fn match_hash(hash: [u8; 16]) -> bool { - hash[0] == 0 && - hash[1] == 0 && - hash[2] < 8 -} - -fn print_code(code: &[Option<u8>; 8]) { - println!(""); - for &byte in code.iter() { - match byte { - None => {print!("-");}, - Some(x) => {print!("{:x}", x);} - } - } - println!(""); -} |