ROT13 Encoder Decoder
Rotate ASCII letters by 13 places while preserving numbers, punctuation, and other Unicode text.
ROT13 changes only ASCII A–Z and a–z. Everything else is preserved exactly.
ROT13 Output
Output will appear below
ROT13 converted text will appear here.
ROT13 decodes itself because 13 is half of 26
ROT13 is a fixed Caesar-style substitution over the 26 ASCII Latin letters. A moves to N, B moves to O, and so on. Running the same substitution again advances another 13 positions, completing the alphabet and returning the original letter. There is no separate decrypt operation or secret key.
The exact boundary is ASCII letters, not “all text”
Digits, punctuation, whitespace, accented letters, non-Latin scripts, and emoji pass through unchanged. That narrow rule matters for interoperability: a ROT13 implementation should not normalize Unicode, strip accents, change case, or rotate characters merely because they look alphabetic in another writing system.
HelloUryybEvery ASCII letter rotates.
API test 123NCV grfg 123Digits and spaces stay unchanged.
café ☕pnsé ☕é and the emoji remain untouched.
Obfuscation is not confidentiality
ROT13 has no key and reverses with the same public operation. Anyone who recognizes it can recover the original text immediately. It is suitable for spoilers, puzzles, demonstrations, and deliberately mild obfuscation—not passwords, API keys, access tokens, personal records, or any data that actually needs protection.
Other implementations should produce the same letter mapping
Python documents rot_13 as a text-to-text transform, and the IETF Internet Security Glossary describes ROT13 as a Caesar cipher with a rotation of 13. Those references are useful interoperability checks even though ROT13 is not a security protocol or modern encryption standard.
See the Python codecs documentation and RFC 4949. Transformation on this page runs in the browser; copying is the only action that writes the result elsewhere, through the browser clipboard API.
