LoginSignup
0
1

More than 3 years have passed since last update.

Rubyでシーザー暗号の解読

Posted at

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)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1