Section 2.26. Encrypting Strings


2.25. Encoding and Decoding rot13 Text

The 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





The Ruby Way(c) Solutions and Techniques in Ruby Programming
The Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming (2nd Edition)
ISBN: 0672328844
EAN: 2147483647
Year: 2004
Pages: 269
Authors: Hal Fulton

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net