签名验签自助排查

简介: 支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用。 SDK下载地址 :[url]https://docs.open.alipay.com/54/103419[/url]TIPS:文中代码部分以JAVA语言演示,其他语言请参考各自SDK。

支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数即可,强烈建议使用。 
SDK下载地址 :[url]https://docs.open.alipay.com/54/103419[/url]

TIPS:文中代码部分以JAVA语言演示,其他语言请参考各自SDK。 

使用开放平台SDK接入 
如果使用了开放平台SDK,签名验签问题通常是因为密钥配置错误导致。 
配置代码示例,问题描述中会以示例中的变量名为例: 

AlipayClient alipayClient = new DefaultAlipayClient(gateway,app_id,private_key,"json",charset,alipay_public_key,sign_type); 

签名问题 
Q:SDK抛出异常:“com.alipay.api.AlipayApiException: RSA私钥格式不正确,请检查是否正确配置了PKCS8格式的私钥”。 
A:代码中私钥(private_key)格式错误导致。1>.检查格式是否正确。Java需使用PKCS8格式,其他语言使用PKCS1格式。 
2>.检查私钥是否一行。 

Q:请求时,SDK抛出异常:“java.lang.NullPointerException: privateKey should not be NULL!”。 
A:代码中私钥(private_key)参数未赋值导致。请把商户应用私钥赋值给该参数。 

Q:请求时,SDK抛出异常:“java.security.NoSuchAlgorithmException: MD5 KeyFactory not available”。 
A:代码中签名类型(sign_type)设置错误导致。开放平台接口需设置成RSA。 

Q:请求时,支付宝返回报错信息:“{"code":"40003","msg":"Insufficient Conditions","sub_code":"isv.missing-signature-config","sub_msg":"验签出错, 未配置对应签名算法的公钥或者证书"}” 
A:开放平台未配置商户公钥导致。请登录开放平台,上传公钥,教程:
[url]https://docs.open.alipay.com/291/105972[/url]

Q:请求时,支付宝返回报错信息:“{"code":"40002","msg":"Invalid Arguments","sub_code":"isv.invalid-signature","sub_msg":"无效签名"}” 
A:签名校验失败。1>.检查网关地址(gateway)是生产环境还是沙箱环境,必须使用与之匹配的应用id(app_id)与私钥(private_key) 
2>.检查编码类型(charset)是否正确。 
3>.检查私钥(private_key)与开放平台上传的应用公钥是否匹配。 
4>.检查签名类型(sign_type)值是否正确。如果未传入sign_type参数,默认为RSA类型。
 

验签问题 
Q:SDK抛出异常:“java.lang.NullPointerException: alipayPublicKey should not be NULL!”。 
A:代码中支付宝公钥(alipay_public_key)参数未赋值导致。请把支付宝公钥赋值给该参数,教程:
[url]https://docs.open.alipay.com/291/105972[/url]

Q:SDK抛出异常:“java.security.InvalidKeyException” 
A:代码中支付宝公钥(alipay_public_key)参数内容错误导致。请核对。 

Q:SDK抛出异常:“com.alipay.api.AlipayApiException: sign check fail: check Sign and Data Fail!” 
A:支付宝返回内容验签失败。1>.检查网关地址(gateway)是生产环境还是沙箱环境,必须使用与之匹配的应用id(app_id)与支付宝公钥(alipay_public_key) 
2>.检查编码类型(charset)是否正确。 
3>.检查代码中支付宝公钥(alipay_public_key)参数与开放平台上获取的支付宝公钥是否一致。 

Q:SDK抛出异常:“Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128” 
A:支付宝公钥(alipay_public_key)与签名类型(sign_type)不匹配。Sign_type设置为RSA2,alipay_public_key需使用对应的支付宝公钥,不能使用开放平台RSA类型下的支付宝公钥。 

Q:SDK抛出异常:“Caused by: java.security.SignatureException: Signature length not correct: got 128 but was expecting 256” 
A:支付宝公钥(alipay_public_key)与签名类型(sign_type)不匹配。Sign_type设置了RSA,alipay_public_key需使用对应的支付宝公钥,不能使用开放平台RSA2类型下的支付宝公钥。 

Q:AlipaySignature.rsaCheckV1()方法返回false
 
A:验签失败,方法同上。 

TIPS:开放平台SDK提供了AlipaySignature.rsaCheckV1()与AlipaySignature.rsaCheckV2()两个版本。V1验签时会剔除sign_type参数,V2会保留sign_type参数。V2仅适用于生活号接口

目录
相关文章
|
8月前
|
数据安全/隐私保护
【产品上新】接口加签优化升级,密钥配置也能如此简单?
【产品上新】接口加签优化升级,密钥配置也能如此简单?
60 11
|
8月前
|
前端开发 开发者
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
【微信公众号对接】有关签名一直报错,提示invalid signature问题(我的签名和使用微信开发者工具验证返回的签名的是一致的)但还是报错!!!
523 0
|
Java Windows
签名验签工具
我们提供了一键生成RSA密钥工具。该工具也提供了签名及验签功能,可以演示针对支付宝开放平台接口的签名和验签流程。 WINDOWS版本下载地址:WINDOWS MAC OS版本下载地址:MAC_OSX 解压后,WINDOWS版本双击文件“RSA签名验签工具.bat”即可运行工具。
4375 0
|
5月前
|
小程序
阿里云短信签名申请流程,手动整理(附短信签名问题解答)
阿里云短信签名是短信中的标识信息,如【阿里云】,用于表明发送方身份。申请流程简便:登录阿里云短信服务控制台,选择国内消息下的签名管理并添加签名,按指引填写表单。审核通常2小时内完成。个人用户每日限申请一个通用签名,企业用户数量不限。签名审核需确保业务主体一致,已通过审核的签名不可改名,仅能调整其它信息并重新审核。特定情况下需上传授权委托书,且签名需关联已备案网站。
731 1
|
7月前
|
Linux 数据库 iOS开发
超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳。请需要系统的放大你们的眼睛。
56 0
|
存储
要实现服务端签名直传
要实现服务端签名直传
100 1
|
8月前
|
应用服务中间件 网络安全 开发工具
利用 KMS 对文本信息进行签名验签实践
通过阿里云的KMS产品针对文件或者证书文件进行签名验签,可以有效解决攻击者针对敏感文件、重要文件在传输过程中被篡改,其次可以实现证书双向认证过程中的证书合法性校验,真正做到传输链路安全。
382 1
|
8月前
|
前端开发 API 数据安全/隐私保护
API接口签名验证
过去对于接口的验证我一般都是直接在登录时为用户发放token,用户在随后的操作中携带了token则允许请求。 但是这样的验证方式存在有一定的问题,如果token被泄露被他人获取,那么就会有非法请求的风险。其他人可以使用这个token自行调用接口进行请求,传入非法参数甚至进行注入攻击等,可能会造成严重的问题。
|
JSON 算法 前端开发
关于前端动态调试解密签名校验的分享
现在很多项目都进行了签名校验或者是使用例如RSA的方式对传输流量进行加密,那么我们可以通过本地的动态调试获取程序的加密逻辑、加密方法,从而绕过系统的防护对系统进行测试
|
数据安全/隐私保护 开发者
阿里云短信服务的签名和模板的审核通过办法(已申请通过)
关于阿里云的短信验证服务的签名和模板申请相对比其他服务有些麻烦,但是依然是可以解决的
1695 0
阿里云短信服务的签名和模板的审核通过办法(已申请通过)