加密
require 'openssl'
# 查看更多的算法列表
puts OpenSSL::Cipher.ciphers
data = "hello"
cipher = OpenSSL::Cipher.new('aes-128-cbc') # 创建加密器实例
cipher.encrypt # 启用加密器
key = cipher.random_key # 生成随机密钥
iv = cipher.random_iv # 生成随机初始化向量
# 用update方法对data字符串进行加密
# 用加密器cipher对象的final方法将加密器状态完成,返回加密结束并追加到加密数据后面
encrypted = cipher.update(data) + cipher.final
puts encrypted
=> "T\xD2}\xA4\x86\x8EP\x14\xD2!\ed\ra\xE7\xEF"
解密
decipher = OpenSSL::Cipher.new('aes-128-cbc')
decipher.decrypt
decipher.key = key
decipher.iv = iv
plain = decipher.update(encrypted) + decipher.final
puts plain
=> "hello"