The ROT13 algorithm obscures text—it does not encrypt the text. The algorithm shifts each character back, or forward, 13 places.
ROT13 is a cipher algorithm that can deter unwanted examination. We implement it with Python—several Python language features are needed.
We define a method called rot13()
. We use the for
-loop to iterate over the string
characters. And then we call the ord()
built-in function.
string
the character representation of the integer. We call chr()
to do this.def rot13(s): result = "" # Loop over characters. for v in s: # Convert to number with ord. c = ord(v) # Shift number back or forward. if c >= ord('a') and c <= ord('z'): if c > ord('m'): c -= 13 else: c += 13 elif c >= ord('A') and c <= ord('Z'): if c > ord('M'): c -= 13 else: c += 13 # Append to result. result += chr(c) # Return transformation. return result # Test method. print(rot13("gandalf")) print(rot13(rot13("gandalf")))tnaqnys gandalf
We test to make sure the rot13()
method is correct. When we call rot13()
on the result of rot13()
, we again have our original string
value.
rot13()
algorithm round-trips its data correctly—the original data is not lost. This is correct.The ROT13 algorithm is an important one to implement. It is a handy way to add obscurity—text that is not easily readable. This is useful in certain situations.
ord()
and chr()
, two built-in functions.The ROT13 algorithm is well-known and can help us learn how to use core Python features. Ciphers, such as ROT13, are occasionally useful.