[Ruby] シーザー暗号化

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

もはや、PHP,Pythonのコードを書いたらRubyも書かないと気が済まなくなってきたので、一心不乱で書いてみました。
 

ruby言語はプログラム言語として非常に人気が高いという理由は、自分で書いてみて初めてわかりました。
 

いくつかのWEBプログラム言語を触ってきて気が付いたんですが、PythonとRubyは、まあまあ似た傾向があり、
PHPとjavascriptはC言語系の流れを受け継いでいるように思えました。
 

rubyがきちんとend記述をするのに対してpythonは、インデントをネストとして扱う為、僕は個人的にpython言語に気持ち悪さがありました。
 

これはPHPやjavascriptのswitch文を書いている時も同じ気持ちです。
 

きちんとendで閉じているrubyは、きちんと閉じタグの存在するxmlがhtmlのimgタグやmetaタグなどに気持ち悪さを感じた人が作り出したのではないかと、勝手に考えてしまいました。
 

そんなこんなで、今回はrubyを使って「シーザー暗号」を扱いますが、pythonからのローカライズでまあまあ楽に完成してしまいました。

ソースコード

簡単解説

今回は、オブジェクト指向を意識して、class構造で書いてみました。
 

冒頭の”require ‘uri'”は、url文字エンコードを行うために読み込むライブラリです。
URI.escape(val)
という箇所で使ってます。
 

stringのキャラクターコードは、ord、
キャラクターコードを文字列に戻すのは、chr、
これはどの言語も似たような感じですね。(若干の違いはありますが、こうしたstringの扱いは言語として準備されているようです)
 

とりあえず、主要言語間でも、シーザー暗号のやりとりができるようになったので、いよいよ現実に使える見通しとなりました。
 

使うか使わないかはあなた次第。

過去記事

データをシーザー暗号化でまあまあセキュアな通信を行えるJSとPHPの互換コードを作ったよ
 

[Python] シーザー暗号化
 

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です