Rubyで共通鍵暗号:String#crypt(salt)
Rubyで共通鍵暗号化を使うからググったりしたメモ。 環境は OS-X 10.11.1 で RUBY 2.2.3 です。
String#crypt(salt)
というメソッドがある。
http://ref.xaio.jp/ruby/classes/string/crypt
暗号化アルゴリズムは「RubyをコンパイルしたC言語ライブラリのcrypt関数に依存」するが、基本的にはDESアルゴリズム。 DESってことは、暗号強度的にこれはもう使っちゃ駄目なメソッドですね。手軽だけど。 使い方は次の通り。
"foo".crypt("XX") #=> "XXLQjxOvqhSMc"
- 第一引数の
salt
は、渡された文字列の先頭2byteだけ使われて、あとは捨てられてしまうみたい。 - そして、返り値の先頭2byteは、まんまsaltですね。
"foo".crypt("XX") => "XXLQjxOvqhSMc" "foo".crypt("XXX") => "XXLQjxOvqhSMc" "foo".crypt("XXY") => "XXLQjxOvqhSMc"
ここらへんの挙動も環境依存なのかもしれないが、自分の手元の環境だとそうなってる。
しかし、これってどうやって復号化するんだろう。。