金子邦彦研究室プログラミングRuby プログラミングRuby で OpenSSL による暗号化と復号

Ruby で OpenSSL による暗号化と復号

Ruby を使って,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

[image]

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