2.25. Encoding and Decoding rot13 TextThe rot13 method is perhaps the weakest form of encryption known to humankind. Its historical use is simply to prevent people from "accidentally" reading a piece of text. It is commonly seen in Usenet; for example, a joke that might be considered offensive might be encoded in rot13, or you could post the entire plot of Star Wars: Episode 12 on the day before the premiere. The encoding method consists simply of "rotating" a string through the alphabet, so that A becomes N, B becomes O, and so on. Lowercase letters are rotated in the same way; digits, punctuation, and other characters are ignored. Because 13 is half of 26 (the size of our alphabet), the function is its own inverse; applying it a second time will "decrypt" it. The following example is an implementation as a method added to the String class. We present it without further comment: class String def rot13 self.tr("A-Ma-mN-Zn-z","N-Zn-zA-Ma-m") end end joke = "Y2K bug" joke13 = joke.rot13 # "L2X oht" episode2 = "Fcbvyre: Naanxva qbrfa'g trg xvyyrq." puts episode2.rot13 |