Skip to content
ZeroServer.tools

ROT47 Cipher

Encode or decode any printable ASCII text with the self-inverse ROT47 cipher.

ROT47 Output

What Is the ROT47 Cipher?

ROT47 is a simple substitution cipher that rotates every printable ASCII character (codes 33–126) by 47 positions within that 94-character range. Because the range has 94 characters and the shift is 47 — exactly half — applying ROT47 twice always returns the original text. Encoding and decoding are the same operation, which is why a single button suffices. Unlike ROT13 (which only rotates letters), ROT47 also transforms digits, punctuation, and symbols, making it a quick obfuscation for any printable ASCII content. It provides no real cryptographic security; use it to lightly hide spoilers or puzzle answers. Everything runs locally in your browser.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Obscuring a short string including digits and punctuation, which a letters-only rotation leaves plainly visible.
  • Decoding a ROT47 string with the same operation, since the rotation covers a symmetric range.
  • Demonstrating rotation across the full printable ASCII range rather than the alphabet alone.
  • Producing output that is deliberately unreadable at a glance for a puzzle.
  • Checking whether a string of odd-looking punctuation is simply rotated text.

Frequently Asked Questions

Why is one operation enough for both directions?
Because the alphabet is 94 characters and the shift is 47 — exactly half. Applying it twice moves every character 94 places, a full loop back to where it started. ROT13 is the same trick over 26 letters with a shift of 13, which is why neither needs a separate decode button.
What does ROT47 cover that ROT13 does not?
Every printable ASCII character from code 33 to 126, so digits, punctuation and symbols as well as letters. ROT13 leaves all of those alone, which is why "Hello, World!" keeps its comma and exclamation mark under ROT13 and becomes w6==@[ (@C=5P under ROT47 — the shape of the text is gone.
Why does the output look like markup?
Because punctuation is inside the rotation. A lowercase k becomes <, l becomes =, and j becomes ; — so the letters "jkl" encode to ;<=. ROT47 output therefore needs HTML or URL escaping before it goes anywhere near a page, in a way ROT13 output never does.
What is left untouched?
Spaces, tabs and newlines, which sit below code 33, and every non-ASCII character. Accented letters, CJK and emoji pass straight through, so ROT47 conceals nothing at all in text that is not ASCII — and the preserved word breaks alone often give a short message away.
Is it any use as security?
None whatsoever. There is no key, so anyone who recognises the scheme reverses it instantly, and the output is recognisable at a glance. Its job is preventing accidental reading — spoilers, puzzle answers, a punchline — which is exactly the role ROT13 has played on Usenet for decades.

Common errors and gotchas

  • Assuming it is stronger than ROT13. It covers more characters, but the key is just as fixed and just as public.
  • Being surprised that the output looks like markup or code. Rotating punctuation lands on other punctuation by design.
  • Expecting spaces to change. The space sits outside the rotated range and stays exactly where it was.
  • Using it on text containing characters outside printable ASCII, which pass through and break the illusion.
  • Relying on it for anything requiring confidentiality rather than mild obfuscation.

Related Encoders & Decoders tools

Private & free — this tool runs entirely in your browser.

IndieKitShip your Next.js startup in days.affiliate