まずはjruby用のopensslをgemにてインストール
1 2 3 4 5 | # jruby -S gem install jruby-openssl Successfully installed jruby-openssl-0.2 1 gem installed Installing ri documentation for jruby-openssl-0.2... Installing RDoc documentation for jruby-openssl-0.2... |
コードとしては
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | require 'openssl' key = "キーとなる文字列" target = "暗号化ターゲット" aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC") aes.encrypt aes.pkcs5_keyivgen(key) # 暗号化 # 溢れる分があるので、finalの結合 value = aes.update(target) + aes.final # DBに登録したいのでHEXにしておく。 value = value.unpack("H*")[0] # 複合化 aes = OpenSSL::Cipher::AES.new("256-CBC") aes.decrypt aes.pkcs5_keyivgen(key) # HEXをunpackし、複合化する。ここでもfinalを結合 value = aes.update([value].pack("H*")) + aes.final |