This demo is running as a live event. Your instructor has created a dedicated room (event) for your class session — multiple instructors may be running this demo simultaneously in different classrooms. Please select the correct event or room that matches your current class session.
Format: DDMMYYYY Example: 15031998
This application is a security demonstration designed to show how authentication works in modern web apps — and why certain common practices are dangerous.
When you type or pick your birthday, your browser runs it through a hash function (SHA-256). This creates a unique fingerprint which is sent to the server. Your actual birthday never leaves your device.
Your password is never sent to the server. Instead, your browser computes this one-way fingerprint — and only the hash is transmitted.
An attacker doesn't need to "reverse" the hash. They just use a brute-force function: they take every possible date in a 100-year range (~36,500 dates), hash each one, and compare them to your hash. On a modern computer, this takes less than a second. This project proves that even with strong math (hashing), a weak or predictable password makes your security irrelevant.
The character space of a password is the total number of possible combinations an attacker must try to guarantee cracking it. This table shows various password types ranked by strength (weakest → strongest), the size of their character space, and how long a brute-force attack would take using two different methods:
(22B hashes/sec):
Using a consumer GPU with hashcat for password cracking
| Password Type | Character Set | Formula | Combinations (Digit Count) |
Browser (1M/s) |
GPU RTX 4090 (22B/s)
|
|---|---|---|---|---|---|
| 8-digit birthday (DDMMYYYY) | Valid calendar dates | 365.25 × 100 | 36,525 (5 digits) |
~36 ms | Instant |
| 8-digit PIN (00000000–99999999) | Digits 0–9 | 108 | ~1.00 × 108 (9 digits) |
~1.7 minutes | Instant |
| 8-char lowercase only | a–z (26 chars) | 268 | ~2.09 × 1011 (12 digits) |
~2.4 days | ~9.5 seconds |
| 8-char alphanumeric | a–z, A–Z, 0–9 (62) | 628 | ~2.18 × 1014 (15 digits) |
~6.9 years | ~2.8 hours |