ruby中rsa加签解签方法

# coding:utf-8
require 'openssl'
require 'base64'
# rsa签名,文本内容和私钥路径
def rsa_sign(data,private_key_path)
private_key = File.read(private_key_path)
pri = OpenSSL::PKey::RSA.new(private_key)
sign = pri.sign('sha1', data.force_encoding("utf-8"))
# signature = CGI.escape(Base64.encode64(sign))
signature = Base64.encode64(sign)
signature = signature.gsub!("\n",'')
return signature
end

# rsa验签,文本内容和签名内容,公钥路径
def rsa_verify(data,sign,public_key_path)
public_key = File.read(public_key_path)
pub = OpenSSL::PKey::RSA.new public_key
digester = OpenSSL::Digest::SHA1.new
sign = Base64.decode64(sign)
return pub.verify(digester, sign, data)
end

# rsa签名验签测试
def test_rsa data = "123"
puts rsa_sign(data,'rsa_private_key.pem')
sign= "KrXGYocurl3wl6w96dkr906lE1RErlQS2T5zalFIALR6Re78qCQlihIN+iXDyQK6OKc8sQlWUgdARslL0n1WFGM36OWZfhb2dG4mpFaKE3oq88JSrxTR0uAQrR/m13qe5QxpN30gCsrNlAqSlUER8TS8cfI9eWtkTQqz6TWaGio="
puts rsa_verify(data,sign,'rsa_public_key.pem')
end

转载于:https://www.cnblogs.com/anion-blogs/p/5684897.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值