Live at one-big-project.vercel.app
A website for learning how ciphers work by using them. Each page explains one cipher in a few lines, shows the formula, and gives you a working version to try with your own messages and keys.
| Cipher | Page |
|---|---|
| Shift (Caesar) | /shift-cipher |
| Affine | /affine-cipher |
| Keyword mixed alphabet | /keyword-mixed |
| Rail fence | /rail-fence |
| Vigenère | /vigenere-cipher |
| Hill (2×2) | /hill-cipher |
| One-time pad | /one-time-pad |
| RSA, with signatures | /rsa |
| Diffie-Hellman key exchange | /key-exchange |
| ElGamal, with signatures | /elgamal |
The numbers are kept small so the maths can be followed by hand. None of this is meant for protecting real data.
React 19, TypeScript, React Router and Vite. All the maths lives in two files:
src/lib/math.ts: modular arithmetic, inverses, fast exponentiation, primality testing and a secure random number helper. Public key pages useBigInt, so large numbers don't lose precision.src/lib/ciphers.ts: the classical ciphers.
Every page is in src/pages, and src/catalog.ts lists them for the sidebar and the home page.
git clone https://github.com/Musala001/OneBigProject.git
cd OneBigProject
npm install
npm run devThen open http://localhost:5173.