热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

支付接口对接

支付接口对接一、    对接接口一览1、通过看微信和支付宝接口对接,发现他们的共性:① 商户号、账号② 订单信息③ 金额④回调地址⑤ 签名类

支付接口对接

一、     对接接口一览

1、通过看微信和支付宝接口对接,发现他们的共性:

①  商户号、账号

②  订单信息

③  金额

④ 回调地址

⑤  签名类型和签名(比较重要)

发请求时生成签名,接收请求时验证签名。

2、支付接口的安全相关技术

① Base64

加密就是二进制,实际使用中是一个字符串,如何把二进制变为字符串。一种是16进制的hex,另外一种就是base64,是一种编码,是将二进制转换为可打印字符。

Hex 是A-F

Base64: A –Z a-z 0-9+=

注意它的编码和解码的类型一致

小技巧:如果看见一串字符串有+=,为什么会出现=?是因为base64位是三位一组,不可能正好是三位,用=补位。

Base 64 和hex比较。

Hex 两个字节为一组,base64是三个字节一组,base64压缩率会更高。

3、MD5

消息摘要

SHA和MD5类似

也是HASh的一种算法

作用是:验证原消息是否有改变。

优点:简单;摘要长度固定;碰撞率低;单向;不同的输入不同的输出,且差别很大;相同的输入相同的输出。

缺点:攻击者可猜测使用的摘要算法进行撞库攻击。

所以业界一般都需要加盐(salt)

MD5和SHA 都属于消息摘要,在java中的写法:

MD5 32位

SHA

SHA-256最长

4、RSA

真正的加密算法,非对称的加密算法。

是keypair

一部分是private key 一部分是public key 一部分是私钥一部分是公钥。

第一步是生成private key 和public key

用命令生成一个和private 配对的公钥:

Openssl 命令 genrsa –out private 1024 生成private key  private 名字,

Rsa –in private –pubout –out public

Pkcs1 和pkcs8的区别?

Pkcs1 Begin RSA private key

Pkcs8 不光RSA还有其它一些非对称加密也可以传,多了一些源信息。

再用ssl命令生成pks8

Pkcs8 –topk8 in private –nocrypt –out private pkcs8

第二部 key的公共方法

Cipher 对象用于加密

 

5、数字签名

数字签名=消息摘要(MD5或SHA)+非对称加密(RSA)

能够验证身份

用自己的私钥加密,别人用自己的公钥解密。

数字签名无法抵赖。因为是用自己的私钥加密。

RSA1(SHA1WithRSA)    RSA2(SHA256WITHRSA)

RSA encrypt/decrypt     RSA sign/verfy sign

非对称性加密运算速度很慢,我们是对消息摘要加密

数字签名的步骤

1)Data MD5 后+ private key 进行RSA 生成sign 签名

2) sign+Date(参数明文) 打包请求

3) 收的人,date MD5 形成digist ; sign 用public解密生成digist2

判断digist = digist2?

①能解密;② 传的参数没有被改变

6、https

设计了两层东西,握手的时候就是非对称加密,一旦他们握手好了就商量一个密码,使用对称加密,因为对称加密速度比较快。

交换公钥时,需要数字证书+公钥 一起给,数字证书就是一个签名验证。https 握手后也是加密的。



推荐阅读
author-avatar
wangxuan1992_273_361
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有