1.简单使用
require "openssl"
2. 生成一个Key(RSA算法)
#生成一个2048位的RSA key
key = OpenSSL::PKey::RSA.new 2048
#私钥
open 'private_key.pem', 'w' do |io|
io.write key.to_pem
end
#公钥
open 'public_key.pem', 'w' do |io|
io.write key.public_key.to_pem
end
##将RSA Key加密
cipher = OpenSSL::Cipher.new 'AES-128-CBC'
pass_phrase = 'my secure pass phrase goes here'
key_secure = key.export cipher, pass_phrase
#将加密的RSA Key存储起来
open 'private.secure.pem', 'w' do |io|
io.write key_secure
end
##加载RSA key
#私钥
key2 = OpenSSL::PKey::RSA.new File.read 'private_key.pem'
#公钥
key3 = OpenSSL::PKey::RSA.new File.read 'public_key.pem'
##加载加密后的RSA key
key4_pem = File.read 'private.secure.pem'
key4 = OpenSSL::PKey::RSA.new key4_pem, pass_phrase
加密函数
def aes128_encrptt(key, data)
aes = OpenSSL::Cipher::AES.new("128-ECB")
#aes = OpenSSL::Cipher.new("AES-128-ECB")
aes.key = key
txt = aes.update(data) + aes.final()
return txt.unpack('H*')[0].upcase
end
解密函数
def aes128_encrypt(key, data)
aes = OpenSSL::Cipher::AES.new("128-ECB")
#aes = OpenSSL::Cipher.new("AES-128-ECB")
aes.decrpyt
aes.key = key
return aes.update([data].pack('H*')) + aes.final()
end
网友评论