diff --git a/day_4/Cargo.lock b/day_4/Cargo.lock new file mode 100644 index 0000000..ee9aca5 --- /dev/null +++ b/day_4/Cargo.lock @@ -0,0 +1,14 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "day_4" +version = "0.1.0" +dependencies = [ + "md5", +] + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" diff --git a/day_4/Cargo.toml b/day_4/Cargo.toml new file mode 100644 index 0000000..605bfc6 --- /dev/null +++ b/day_4/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "day_4" +version = "0.1.0" +authors = ["JPFrancoia "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +md5 = "0.7.0" diff --git a/day_4/src/main.rs b/day_4/src/main.rs new file mode 100644 index 0000000..258a38f --- /dev/null +++ b/day_4/src/main.rs @@ -0,0 +1,33 @@ +use std::{fs, u32}; +use md5; + + +fn main() { + let key = fs::read_to_string("input.txt").unwrap(); + let key = key.trim(); + + println!("Key: {}", key); + + let mut counter = 0; + + for n in 1..u32::MAX { + //println!("{}", n); + let input = format!("{}{}", key, n); + let digest = format!("{:x}", md5::compute(input.as_bytes())); + + ////For debug + //if n == 609043 { + //println!("{}", digest); + //println!("{}", digest.starts_with("00000")); + //break + //} + + if digest.starts_with("00000") { + println!("{}", digest); + counter = n; + break + } + } + + println!("Suffix: {}", counter); +}