Rubyでシーザー暗号を解読して見た時のコードと解説をします。
##シーザー暗号とは?
そもそもシーザー暗号とはなにかなんですが、単一換字式暗号の一種らしいのですが、
簡単に言うと文字を特定数の文字ずらした際にそれが暗号鍵になる暗号の事です。
例)
暗号
hsnvld
2文字進めた文字が答えとなると
jupxnf
になります。
これをRubyですぐ表示できる様にアルゴリズムを書いてみました。
##Rubyでシーザー暗号の解読
暗号文に対して3文字進めるのが答えとします。
暗号文 hgmgkrd
def decryption(char)
char_ary = char.split("")#1文字ずつに分割する
changed_char_ary = []#空の配列を用意する
char_ary.each do |char|
changed_char_ary << (char.ord - 3).chr
#ordメソッドで整数にしchrメソッドで文字に変換する
#空の配列に入れる
end
puts changed_char_ary.join
# =>edjdhoa
#joinメソッドで配列を連結して文字列にする
end
char = "hgmgkrd" #暗号文を変数に入れる
decryption(char)