1. Qiita
  2. 投稿
  3. シーザー暗号
  • 7
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

ROT13

ROT13(rotate by 13 places)
文字を任意の個数ずらすシーザー暗号の一種で、13字ずらす方式。
アルファベットが26字なので、13字ずらすことを2回やると元に戻る。
暗号化と復号化が同じ仕組でできる。

Python

stringのencodeメソッドを使う





"ABC".encode('rot13')
'NOP'

2回適用すると元に戻る
"ABC".encode('rot13').encode('rot13')
'ABC'

encodeで指定できるコーデック一覧
http://docs.python.jp/2.5/lib/standard-encodings.html
BASE64もあるよ

Linux

trによる変換

$ echo ABC | tr A-Z N-ZA-M
NOP

nkfによる変換
$ echo ABC | nkf -r
NOP

nkfを使ってファイルごと変換
$ cat text
ABC
$ nkf -r text 
NOP

vi

VISUALモードなどで選択して、
g?
を入力

2回実施すると戻る

参考文献

ROT13, wikipedia
http://en.wikipedia.org/wiki/ROT13