スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RubyでAES暗号化してURLの一部として使いたい

RubyでAESで暗号化してURLの一部として返したいと思いました。
初期ベクトルを結合してやりとりするサンプルがなかなか見つからなかったので、色々なサンプルを参考にして書いてみました。

require 'openssl'
require 'base64'
require 'cgi'

def encrypt(key, data)
cipher = OpenSSL::Cipher.new('AES-256-CBC')
cipher.encrypt
cipher.key = Digest::SHA256.digest(key)
iv = cipher.random_iv
encrypted = cipher.update(data) + cipher.final
CGI.escape(Base64.encode64(iv + encrypted).gsub(/\s/, ''))
end

def decrypt(key, data)
encrypted = Base64.decode64(CGI.unescape(data))
cipher = OpenSSL::Cipher.new('AES-256-CBC')
cipher.decrypt
cipher.key = Digest::SHA256.digest(key)
cipher.iv = encrypted.slice!(0,16)
cipher.update(encrypted) + cipher.final
end

key = "password"
data = "Hello World!"
e = encrypt(key, data)
puts e
puts decrypt(key, e)
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。