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只用公钥,结果只有私钥持有者可以签名,而所有的公钥持有者都可以进行验证。

  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

shanshang

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值