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
もう少し厳密にやらないといけないと思うんですけど、
今回は割愛します!
興味がある方は、ご自分でも実装してみてください!
そして何かコードに不備があればコメント欄にてぜひ教えてください。
それでは('ω')ノ