pythonでシーザー暗号作成プログラムを作ってみた

はじめに

pythonでシーザー暗号作成プログラムを作ってみました。

背景

最近、CTFやプロコンなどに出場していこうと思い、勉強がてらにいろいろ調べていたら、シーザー暗号の問題を見つけました。 そこで、どんなもんかなと、実装してみようとおもった次第であります。

シーザー暗号とは

古代ローマ時代に使われた暗号技術だそうで、だいぶ古いそうです。
どういう暗号かといいますと、
とある文章で使われているアルファベットやひらがななどを、一定の文字数だけ「ずらす」ことによってつくられた暗号です。
例えば、与えられた文字列の文字を、三文字ずつずらしていくとなると

hatena (変換前の文字列)
kdwhqd (変換後の文字列)

という感じになります。

ちなみに、三文字ずらすことに限定されている訳ではなく、四文字ずらすこともあれば、五文字ずらすこともあります。

実装

以下が実装コードになります。

今回は三文字ずらすことを想定して実装しています。

#!/usr/bin/python
# -*- Coding: utf-8 -*-

inputStr = 'hatena'

def getConverseCodes(args):
    converseCodes = ''
    for s in args:
        #アスキーコードに変換
        s = ord(s)
        if 65 <= s and s<= 90:
            s = s + 3
        elif 97 <= s and s <= 122:
            s = s + 3
       #アスキーコードから文字を取得
        s = chr(s)
        converseCodes += s
    return converseCodes

print getConverseCodes(inputStr)

ちゃんと期待された値が返ってきてるので、大丈夫そうです!

kdwhqd


もう少し厳密にやらないといけないと思うんですけど、
今回は割愛します!


興味がある方は、ご自分でも実装してみてください!


そして何かコードに不備があればコメント欄にてぜひ教えてください。


それでは('ω')ノ