A static, zero-dependency web tool implementing five classical ciphers with brute-force decryption and letter frequency analysis.
Live demo: https://sen.ltd/portfolio/caesar-cipher/
- Caesar — shift each letter by N positions (slider 0–25)
- ROT13 — Caesar shift 13; applying twice restores original
- Vigenère — polyalphabetic cipher using a keyword
- Atbash — alphabet reversal (A↔Z)
- Rail Fence — zigzag transposition with N rails
- Encode and decode for all ciphers
- Brute force Caesar — view all 26 shifts at once; click a row to apply
- Letter frequency analysis — chi-squared against English frequencies to suggest the best shift
- Japanese / English UI
- Dark / light theme
No build step required. Open index.html directly in a browser, or run:
npm run serve # python3 -m http.server 8080Then visit http://localhost:8080.
npm test # node --test tests/*.test.jscaesar-cipher/
├── index.html # App shell
├── style.css # Styles (light & dark theme)
├── src/
│ ├── main.js # DOM, event wiring
│ ├── ciphers.js # Pure cipher implementations
│ └── i18n.js # JA/EN translations
├── tests/
│ └── ciphers.test.js # 30+ unit tests
├── assets/ # Screenshots and media
└── package.json
MIT — Copyright (c) 2026 SEN LLC (SEN 合同会社)