ruby中rsa加簽解簽方法

來源:互聯網
上載者:User

標籤:

# 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

ruby中rsa加簽解簽方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.