Ruby で OpenSSL による暗号化と復号
Ruby を使って,OpenSSL による暗号化と復号を行うプログラム例を示す.
- OpenSSL による文字列の暗号化
- OpenSSL で暗号化された文字列の復号
require 'openssl'
def encrypt(s, password)
enc = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
enc.encrypt
enc.pkcs5_keyivgen(password)
return enc.update(s) + enc.final
end
def decrypt(s, password)
dec = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
dec.decrypt
dec.pkcs5_keyivgen(password)
return dec.update(s) + dec.final
end
if __FILE__ == $0
a = encrypt "hello", "pass"
p a
b = decrypt a, "pass"
p b
end

* Ruby 1.9 系列での注意点: 復号化された文字列のエンコードは,自動設定されないので,手動で設定する必要がある.