RSA2新式签名方式

简介: 什么是数字签名? 简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。 开放平台最新支持的签名算法由于计算能力的飞速发展,从安全性角度考虑,蚂蚁金服在原来SHA1...

什么是数字签名? 


简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。 


开放平台最新支持的签名算法


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


注意事项


1.避免公私钥混用      

不同签名算法的签名密钥是隔离的。由于同时提供了两套签名算法,若选择了特定的签名算法,请保证使用对应的私钥签名,同时使用对应的支付宝公钥进行验签。 

2.协议参数        

开放平台的报文标准中,sign_type参数用于指定签名算法,若使用SHA256WithRSA签名算法则在报文中需要指定sign_type=RSA2。若您使用开放平台SDK,在此做简要说明: 

1)技术同学接入配置信息 把APPID、应用私钥、支付宝公钥配置在代码中,对请求内容进行签名,并对支付宝返回的内容进行验签,支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用。 

2)使用开放平台sdk接入示例 开放平台SDK封装了签名实现,只需在创建DefaultAlipayClient对象时,设置请求网关(gateway),应用id(app_id),应用私钥(private_key),编码格式(charset),支付宝公钥(alipay_public_key),签名类型(sign_type)即可,报文请求时会自动进行签名,示例如下:


目录
相关文章
|
6月前
|
数据安全/隐私保护
公钥和私钥的作用和区别
公钥和私钥的作用和区别
253 0
|
移动开发 Java 数据安全/隐私保护
C#RSA加密解密签名类,支持PEM格式解密(1024或2048位)
主要介绍了PEM PKCS#8、PKCS#1公钥和私钥在C#中的使用,并以此为基础写的C#函数方法。
3269 1
|
4月前
|
算法 C# 数据安全/隐私保护
|
Java 程序员 数据安全/隐私保护
Java接口签名(Signature)实现方案
针对当前的系统开发一个对外开放的接口
|
数据安全/隐私保护
加密与签名的区别
加密与签名的区别
120 0
|
Java 数据安全/隐私保护
java实现RSA加密、解密、签名
java实现RSA加密、解密、签名
1044 0
java实现RSA加密、解密、签名
|
C# 数据安全/隐私保护
C#使用SHA1加密类(RSAFromPkcs8)支持1024位和2048位私钥
C#使用SHA1加密类(RSAFromPkcs8)支持1024位和2048位私钥
268 0
|
算法 数据安全/隐私保护
RSA算法加密/解密和签名/验签工具类
RSA算法加密/解密和签名/验签工具类
|
存储 Java 开发工具
AndroidV1,V2,V3签名原理详解
AndroidV1,V2,V3签名原理详解
294 0
AndroidV1,V2,V3签名原理详解
C#编程:方法签名-8
C#编程:方法签名-8
173 0