Encoding

ROT13 / Caesar Cipher

Caesar cipher — a cyclic shift of Latin alphabet letters. ROT13 is the special case with shift 13 (button below), symmetric: encode and decode give the same result. Other characters (digits, punctuation, non-Latin letters) are left unchanged.

A Caesar cipher cyclically shifts every letter of the alphabet by a fixed number of positions. ROT13 is the special case with a shift of 13, which makes the cipher self-inverting: apply ROT13 twice and you get the original text back.

How to use it

Common uses

Things to keep in mind

ROT13 is not encryption in any security sense — it's obfuscation, trivially broken by hand without any tool or key.

Since the Latin alphabet has 26 letters and 13 is exactly half of that, ROT13 is symmetric: the same operation encodes and decodes.

Article about this tool: ROT13 and the Caesar cipher: simple character substitution

Frequently asked questions

Is ROT13 actually secure?

No, not at all. ROT13 is a trivial letter-rotation cipher with no real security — anyone can decode it instantly, even by eye. It's used for obfuscating spoilers or puzzle answers, not for protecting sensitive data.

Why does encoding and decoding give the same result for ROT13?

ROT13 shifts letters by 13, exactly half of the 26-letter alphabet, so applying it twice returns the original text — encode and decode are the same operation.

What happens to numbers, punctuation, or non-Latin letters?

They're left unchanged. Only Latin alphabet letters are shifted; the custom shift value works the same way for any Caesar cipher variant.

How is ROT47 different from ROT13?

ROT47 works over a wider ASCII range (33–126), so it also shifts digits, punctuation, and special characters, not just Latin letters, while keeping the same self-inverse shift idea.

Can ROT13 be cracked without a tool?

Yes, easily — just read the text while mentally shifting each letter by 13 positions, or remember that A↔N, B↔O, and so on through the alphabet. It's not protection, just light obfuscation.

Articles: Encoding

Base64: why encoding is needed and how it works

How Base64 turns binary data into ASCII text and where that is actually needed.

Base32: how it differs from Base64 and when it is more convenient

The case-insensitive Base32 alphabet and scenarios where it beats Base64.

URL Encode/Decode: percent-encoding in links

How special characters in URLs and query parameters turn into %XX sequences.

HTML Entities: how to safely output special characters on a page

Why the characters < > & need escaping and how that prevents broken markup.

JWT: token structure and what "decoding" a JWT actually means

The header, payload, and signature of a JWT, and why decoding is not the same as verifying the signature.

Unicode Escape: what \uXXXX sequences mean

Where \u0041-style sequences in JSON and JS strings come from and what they mean.

Punycode: how internationalized domains work in DNS

How a domain with non-Latin characters gets converted into an ASCII form with the xn-- prefix.

Morse code: how text becomes dots and dashes

The principle behind encoding letters as dots and dashes, and where Morse code is still used today.

Data URI: when to embed images directly in code

How a data: URI embeds a file’s contents directly in HTML or CSS, and when that is worth it.

Gzip + Base64: compressing data for text-based transfer

Why compressed binary data also gets Base64-encoded before going into a text field.

XML Entities: escaping characters in XML documents

The five required XML entities without which a document breaks during parsing.