RSA签名规则实现:
基本请求规则
- client商户发起请求时, 需要对请求参数生成签名。
- service商户接收异步通知时,需要验证参数中的签名。
- RSA方式签名 --> 商户需要创建一对RSA秘钥,将公钥传给平台(service),私钥自行留存用于生成签名。 同时平台也会提供一个公钥给商户,用于验证签名。
签名算法
- Setp.1 确定待签名参数
在请求参数列表中,除去sign参数外,其他需要使用到的参数皆是要签名的参数。
在通知返回参数列表中,除去sign参数外,凡是通知返回回来的参数皆是要签名的参数。
- Setp.2 对参数进行排序
对于待签名的所有参数,需要根据参数名首字符字典顺序(ascii值大小)排序,若遇到相同首字符,则判断第二个字符,以此类推。
- Setp.3 生成待签名字符串
将排序后的待签名参数以“&“符号拼接, 形如:“参数名1=参数值1&参数名2=参数值2&….&参数名N=参数值N”。
- Setp.4 生成签名/验证签名
生成签名:把待签名字符串与商户的私钥一同放入RSA的签名函数中进行签名运算,从而得到签名结果字符串(sign值)。
验证签名:把待签名字符串、平台提供的公钥、通知返回参数中的参数sign值三者一同放入RSA的签名函数中进行签名运算,来判断签名是否验证通过。
- Setp.5 生成签名php用例

本文介绍了PHP如何实现RSA方式的签名认证,包括基本请求规则、签名算法、注意事项以及秘钥对的生成和PHP中秘钥格式的校验。详细阐述了从确定待签名参数、排序、生成待签名字符串到生成和验证签名的步骤,并提供了PHP签名用例。
最低0.47元/天 解锁文章
1459

被折叠的 条评论
为什么被折叠?



