Skip to content
Run here 100% in your browser, no upload, no login

Vigenere Cipher

Encrypt and decrypt text with a Vigenere key locally; shifts follow classic mod-26 arithmetic.

Letters only, other characters are ignored. The key advances one step per letter processed.

How the key moves

The i-th letter is shifted by the (i mod key length)-th key character, so the shift pattern repeats every time the key runs out.

How to use it

  1. Type a key into the Key field. Only letters are used; anything else in the key is ignored.
  2. Paste the text to process into the input panel.
  3. Pick Encrypt or Decrypt. Encrypt adds the key shift, Decrypt subtracts it, and both preserve letter case.
  4. Read the key rhythm note: it shows your key length and how the key characters repeat across the letters.
  5. Copy or download the result. Non-letter characters pass through untouched.

Common use cases

Why it stays private

Encryption runs entirely in your browser with local JavaScript. No text is uploaded, so draft messages, student answers or private notes never leave your device.

FAQ

Q: Is this cipher secure for real secrets? A: No. The Vigenere cipher is a classical cipher that is broken by frequency analysis and Kasiski examination. It is provided for teaching and puzzles only, and offers no security for real data.

Q: How are spaces, numbers and punctuation handled? A: They are copied to the output unchanged and never consume a key character, so only letters are shifted and the rhythm line always counts letters.

Q: What does the key rhythm note tell me? A: It lists your key length and the exact key characters applied in order, then states when the pattern wraps around. A longer key with no repeated pattern is harder to break than a short one, but still not secure.

Your data stays on this device

Vigenere Cipher runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.

Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.