Caesar Cipher Encoder & Decoder — with ROT13

Encode or decode text with a Caesar shift cipher (0–25), or apply ROT13 in one click. Letters shift while case, spaces and punctuation stay intact.

🔒 Runs entirely in your browser. Your input and output are never sent to a server or stored — fully private.

Shifts A–Z and a–z by N; case and other characters are preserved. To decode, use 26 − N — or ROT13, which both encodes and decodes.

Did this tool help? Tap to react

About this tool

Encode and decode messages with the Caesar cipher, one of the oldest letter-substitution ciphers, by shifting each letter a fixed number of places from 0 to 25. A shift of 13 gives you ROT13, the version popular for hiding spoilers and puzzle answers. It is a great way to see how classical encryption works, even though it offers no real security today. Everything is processed in your browser, so the text you enter never leaves your device.

Frequently asked questions

How does a Caesar cipher work?

It shifts every letter forward through the alphabet by a fixed amount called the key. With a shift of 3, A becomes D, B becomes E, and so on, wrapping around from Z back to the start. To read the message you apply the same shift in reverse. Numbers, spaces and punctuation are normally left untouched, so only the letters themselves change.

What is ROT13?

ROT13 is simply a Caesar cipher with a shift of 13. Because the English alphabet has 26 letters, applying ROT13 twice returns the original text, so the same single operation both encodes and decodes. It is widely used on forums and in puzzles to hide spoilers, punchlines and answers that readers can choose to reveal only when they want to.

Is the Caesar cipher secure, and is my text uploaded?

No on both counts. A Caesar cipher has only 25 possible shifts, so anyone can break it in seconds by simply trying them all — treat it as a puzzle or a learning tool, never as real protection. As for privacy, the encoding and decoding happen entirely in your browser, so the text you enter is never sent to a server, logged or stored.