[Python] ROT13で復号してみた

ふと友達から「ROT13で復号してよ」と言われたのですが、そもそもROT13ってなんぞやって

段階だったので、備忘録としてROT13の解説と実際にコードを書いみました。

 

 

開発環境

  • mac OS High Sierra バージョン 10.13.4
  • Python 3.6.4

 

ROT13とは

シーザー暗号の1つ
指定のアルファベットを13字後のアルファベットに置き換える。
暗号と複合が全く同じ変換なのが特徴

wikipedia

アルファベットが26文字なので、必然的に13字になったんですね。

暗号と復号が同じ手順で出来るのが特徴です。

 

シーザー暗号とは

決まった文字数分のアルファベットを移動させて暗号化を行う。

極めて単純な暗号であるが、現代の暗号においても重要な、規則(アルゴリズム)および鍵といった2つの

要素が既に含まれている。

wikipedia

 

実装例

 

実際に、ROT13で暗号化された文字列を復号してみました。

 

ord()

  • 一文字の文字列をキャラクターコードに変換する

chr()

  • キャラクターコードを文字列に変換する

ジェネレータとは

  • 1つ1つの処理でステートをもつ必要があるが、リストとして全体をもつ必要がない場合に使う
    • リストとしてもつのは、メモリを消費してしまうから、なるべく避けたい!

非常にわかりやすい記事がありました。

ジェネレータとは

正常に、HAPPY が表示されたかと思います。

まとめ

わかりにくい場合は、図を書いてみれば理解しやすいですよ。

逆に、暗号化する場合も、適当な文字を入れてもらえればすぐに暗号化できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA