From d31003d5df5114bf4c4c046198a79c3d9b7d4b29 Mon Sep 17 00:00:00 2001 From: jkissane2 Date: Mon, 6 Apr 2026 23:56:33 -0400 Subject: [PATCH] Unfinished encryption lab answers. --- .envrc | 1 + answers.md | 10 +++++----- caesar_cracker.py | 8 ++++++++ 3 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 .envrc create mode 100644 caesar_cracker.py diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..4a96c22 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +source .venv/bin/activate \ No newline at end of file diff --git a/answers.md b/answers.md index f125e69..e6859e8 100644 --- a/answers.md +++ b/answers.md @@ -4,19 +4,19 @@ 0. `secrets/secret0.txt` is encrypted using a Caesar Cipher. What is its secret number? - +78 1. `secrets/secret1.txt` is encrypted using a Caesar Cipher. What is its secret number? - +1 2. `secrets/secret2.txt` is encrypted using a Caesar Cipher. What is its secret number? - +44 3. `secrets/secret3.txt` is encrypted using a Caesar Cipher. What is its secret number? - +59 4. `secrets/secret4.txt` is encrypted using a Caesar Cipher. What is its secret number? - +32 ## Checkpoint 2 5. What is the polyalphabetic secret word? diff --git a/caesar_cracker.py b/caesar_cracker.py new file mode 100644 index 0000000..a437d75 --- /dev/null +++ b/caesar_cracker.py @@ -0,0 +1,8 @@ +from collections import Counter +from easybits import Bits + +def crack_caesar(ciphertext): + counts = Counter(ciphertext) + most_common_char, _ = counts.most_common(1)[0] + shift = Bits(most_common_char).int - Bits(' ').int + return shift