ROT13 Cipher: Python Encryption Methods

Creating the ROT13 Cipher with Python

In this guide I will explain what the ROT13 cipher is and its uses. Then I will show you how to create your own ROT13 cipher program with Python.

What is ROT13?

ROT13, which stands for “rotate by 13 places,” is a simple and well-known Caesar cipher variant. It’s a type of substitution cipher that involves shifting each letter in the plaintext 13 positions down the alphabet. It’s sometimes referred to as the “Caesar cipher with a fixed key of 13” or the “13-rot” cipher.

How the ROT13 Cipher Works

  1. Character Set: ROT13 operates on a character set, typically the 26-letter English alphabet. It doesn’t affect numbers, symbols, or spaces.

  2. Key: The key for ROT13 is always 13. This means that each letter in the plaintext is shifted 13 positions down the alphabet. For example, ‘A’ becomes ‘N,’ ‘B’ becomes ‘O,’ ‘C’ becomes ‘P,’ and so on.

  3. Encryption: To encrypt a message using ROT13, you simply apply the 13-position shift to each letter while leaving non-alphabetic characters (numbers, symbols, spaces) unchanged. For example, if you want to encrypt the message “HELLO,” it becomes “URYYB.”

  4. Decryption: Decryption in ROT13 is the same as encryption because the Caesar cipher is symmetrical. If you apply ROT13 twice (rotate by 13 positions again), you’ll get back to the original plaintext. In other words, ROT13(ROT13(message)) = message.

Common uses of the ROT13 Cipher

ROT13 is mainly used for obfuscation or to hide text from casual readers. It’s not a secure encryption method since the key is always known (13), and there are only 26 possible keys (from 1 to 25, plus the reverse operation of ROT13 itself).

Common uses of ROT13 include hiding spoilers in online forums, obscuring text to prevent easy reading, or simply for fun and casual purposes.

Example of ROT13 Encrypted Message:

  • Plaintext: HELLO

  • ROT13-Encrypted: URYYB

Creating a ROT13 Cipher with Python

In the main() function replace the string within the txt = "ROT13 is fun but too easy to crack" line with whatever message you wish to encrypt.
rot13trans = "".maketrans('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
# Function to encrypt message
def rot13(text):
    return text.translate(rot13trans)
def main():
    txt = "ROT13 is fun but too easy to crack"  #Message to encrypt
    print (rot13(txt))
if __name__ == "__main__":
Run the script and your encrypted message will be printed to the terminal or console.


ROT13 has become a part of internet culture and is often used as a quick and reversible way to transform text. It’s important to note that it doesn’t provide any meaningful security and should not be used for securing sensitive information.

Find more of our Python guides here: Python Guides


Big Book of Small Python Programs: 81 Easy Practice Programs:

Luke Barber

Hello, fellow tech enthusiasts! I'm Luke, a passionate learner and explorer in the vast realms of technology. Welcome to my digital space where I share the insights and adventures gained from my journey into the fascinating worlds of Arduino, Python, Linux, Ethical Hacking, and beyond. Armed with qualifications including CompTIA A+, Sec+, Cisco CCNA, Unix/Linux and Bash Shell Scripting, JavaScript Application Programming, Python Programming and Ethical Hacking, I thrive in the ever-evolving landscape of coding, computers, and networks. As a tech enthusiast, I'm on a mission to simplify the complexities of technology through my blogs, offering a glimpse into the marvels of Arduino, Python, Linux, and Ethical Hacking techniques. Whether you're a fellow coder or a curious mind, I invite you to join me on this journey of continuous learning and discovery.

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights