Plan
This lab opens in week 13. The full step-by-step page, the starter repository and the tests are published before that Monday; the plan below is final.
- hashes.py: SHA-256 of a list of passwords, written to a file like a leaked database.
- crack.py: recover every password that appears in a 10 000-word list by hashing candidates and comparing.
- salted.py: add a random salt per user and show that the same attack now needs 10 000× more work.
- pwned.py: send only the first five characters of a SHA-1 hash to the Have I Been Pwned range API and report how often the password has leaked.
- Explore notebook: how long brute force takes at 10⁹ guesses per second for passwords of length 6–14.
How it works
Same loop as every lab: accept on Classroom 50, open in Codespaces, solve the TODOs, python3 check.py until green, git push. See how labs work and the setup guide.