RSA和RSA2签名算法区别

RSA和RSA2签名算法 
什么是数字签名? 
一个很好的说明文档可以参考:What is a Digital Signature?,中文翻译可以参考:数字签名是什么?.
 
简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。 
开放平台支持的签名算法 
RSA2(SHA256WithRSA):(强烈推荐使用),强制要求RSA密钥的长度至少为2048. 
RSA(SHA1WithRSA):对RSA密钥的长度不限制,推荐使用2048位以上
 

由于计算能力的飞速发展,从安全性角度考虑,蚂蚁金服在原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。该算法在摘要算法上比SHA1WithRSA有更强的安全能力。 
SHA1WithRSA的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用SHA256WithRSA的签名算法。
 
注意事项 

  1. 协议参数 
    开放平台的报文标准中,sign_type参数用于指定签名算法,若使用SHA256WithRSA签名算法则在报文中需要指定sign_type=RSA2,若您使用开放平台SDK,可参考SDK相关文档说明:
    [url]https://docs.open.alipay.com/291/105974[/url]
  2. 避免公私钥混用 
    不同签名算法的签名密钥是隔离的。由于同时提供了两套签名算法,若选择了特定的签名算法,请保证使用对应的私钥签名,同时使用对应的支付宝公钥进行验签。
上一篇:# Apache Spark系列技术直播# 第五讲【 Spark RDD编程入门 】


下一篇:《反应式宣言》——The Reactive Manifesto