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)
|
|---|---|---|---|---|---|
| 4-digit PIN | Digits 0–9 | 104 | 10,000 (5 digits) |
~10 ms | Instant |
| 8-digit birthday (DDMMYYYY) | Valid calendar dates | ~36,525 dates | 36,525 (5 digits) |
~36 ms | Instant |
| 6-digit number | Digits 0–9 | 106 | ~1.00 × 106 (7 digits) |
~1 second | 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 |
| 8-char + special chars | 94 printable ASCII | 948 | ~6.10 × 1015 (16 digits) |
~193 years | ~3.2 days |
| 12-char alphanumeric | a–z, A–Z, 0–9 (62) | 6212 | ~3.23 × 1021 (22 digits) |
~102 million years | ~4,647 years |
| 12-char + special chars | 94 printable ASCII | 9412 | ~4.76 × 1023 (24 digits) |
~15.1 billion years | ~685,500 years |