diff options
-rw-r--r-- | data/6.out.txt | bin | 2876 -> 2876 bytes | |||
-rw-r--r-- | src/lib.rs | 3 | ||||
-rw-r--r-- | tests/lib.rs | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/data/6.out.txt b/data/6.out.txt Binary files differindex cd20bce..14283df 100644 --- a/data/6.out.txt +++ b/data/6.out.txt @@ -191,6 +191,9 @@ fn crack_single_byte_xor_with_confidence (input: &[u8]) -> (u8, f64) { if !decrypted.is_ascii() { continue; } + if decrypted.iter().any(|&c| c != b'\n' && (c < 0x20 || c > 0x7E)) { + continue; + } let lowercase = decrypted.to_ascii_lowercase(); let mut frequencies = [0; 26]; let mut total_frequency = 0; diff --git a/tests/lib.rs b/tests/lib.rs index ac13fb2..b537bd0 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -36,7 +36,7 @@ fn problem_4 () { .lines() .map(|line| line.unwrap().from_hex().unwrap()) .collect::<Vec<Vec<u8>>>(); - assert_eq!(matasano::find_single_byte_xor_encrypted_string(&possibles[..]), b"nOW\0THAT\0THE\0PARTY\0IS\0JUMPING*"); + assert_eq!(matasano::find_single_byte_xor_encrypted_string(&possibles[..]), b"Now that the party is jumping\n"); } #[test] |