シーザー暗号の実装(1)

シーザー暗号を作成するアプリケーションをPythonで実装する。

  • 仕様は以下の通り
    • 平文から暗号文、暗号文から平文、どちらでも対応させる。
    • 暗号のキーとなる数字は指定できるように。
    • 文を入力してキーを指定すれば、指定したキーだけ文をシフトしたものを表示。
    • wxPythonGUIラッパーを作成。

ベースとなる処理を書いてみる。

Before = "abcdefghijklmnopqrstuvwxyz"
After  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

sentence = "today is a fine day"
encode_sentence = ""
ckey = -2

for i in xrange(len(sentence)): 
    a = Before.find(sentence[i])
    if (a == -1):
        encode_sentence += ' '
    else:
        if (a+ckey > 25):
            num = a+ckey - 26
            encode_sentence += After[num]
        else:
            num = a + ckey
            encode_sentence += After[num]
print encode_sentence

sentenceが入力する文。ckeyがシフトさせる文字数。これだけだ。
入力文

today is a fine day

出力文

RMBYW GQ Y DGLC BYW

あとはこれをラップするだけ。