RSA MD5 签名验证

1 何为RSA with MD5算法?

    在项目中遇到这样的问题,别人用RSA with MD5加密一段数据后,我们接收签名和原文,我们需要根据他们提供的公钥来对他们发过来的数据进行数字签名合法性的验证。

 

2 银行端 RSA with MD5生成签名的过程如下:

假设 原文为X,

先用MD5算法将原文进行散列,即y=h(x)

然后银行用私钥,使用RSA算法将y进行编码,即z=d(y),即得到签名

 

3 客户端签名验证步骤:

1)      使用公钥进行签名的逆运算,即E(明文)

2)      使用标准MD5算法运算原文,即H(签名)

3)      比较1)2)结果。 即比较 E(明文)  ?= H(签名)

 

4 算法公式

 

E(X)表示用RSA算法对明文X加密(即用公钥编码),

D(X)表示用RSA算法对密文X解密(即用私钥编码),

H(X)表示用MD5(或其它散列算法)对X散列:
对文档X签名:

R   =   D(H(X));

验证文档X和签名R是否一致:
H(X)   ==   E(R)

由于D要用私钥而E只用公钥,结果只有私钥持有者可以签名,而所有的公钥持有者都可以进行验证。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值