jrubyでopenssl

まずは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