ruby加密

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,053评论 0 7
  • 2018-Read-Record 记录我的2018学习历程 文中首先解释了加密解密的一些基础知识和概念,然后通过一...
    NinthDay阅读 11,357评论 8 105
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 11,616评论 5 29
  • 姓名:陈国林 公司:宁波大发化纤有限公司 组别:宁波盛和塾第235期利他3组 日精打卡时间:2017-06-02 ...
    陈国林阅读 232评论 0 0