热门标签 | 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 握手后也是加密的。



推荐阅读
  • 深入解析 OpenSSL 生成 SM2 证书:非对称加密技术与数字证书、数字签名的关联分析
    本文深入探讨了 OpenSSL 在生成 SM2 证书过程中的技术细节,重点分析了非对称加密技术在数字证书和数字签名中的应用。非对称加密通过使用公钥和私钥对数据进行加解密,确保了信息传输的安全性。公钥可以公开分发,用于加密数据或验证签名,而私钥则需严格保密,用于解密数据或生成签名。文章详细介绍了 OpenSSL 如何利用这些原理生成 SM2 证书,并讨论了其在实际应用中的安全性和有效性。 ... [详细]
  • 本文详细介绍了如何使用OpenSSL自建CA证书的步骤,包括准备工作、生成CA证书、生成服务器待签证书以及证书签名等过程。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
  • 在CentOS 6.5环境中,本文详细介绍了如何配置SSH无密钥登录,并成功执行PSSH命令。首先,确保系统已安装PSSH工具,可使用 `yum install pssh` 进行安装。若未配置免密钥登录,PSSH命令将无法正常执行,例如尝试运行 `pssh -H root@192.168.245.129 -i uptime` 时会失败。通过生成并分发SSH公钥,可以实现无密码登录,从而顺利执行PSSH命令。此外,本文还提供了详细的步骤和常见问题的解决方案,帮助用户顺利完成配置。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 在Ubuntu上安装MySQL时解决缺少libaio.so.1错误及libaio在MySQL中的重要性分析
    在Ubuntu系统上安装MySQL时,遇到了缺少libaio.so.1的错误。本文详细介绍了如何解决这一问题,并深入探讨了libaio库在MySQL性能优化中的重要作用。对于初学者而言,理解这些依赖关系和配置步骤是成功安装和运行MySQL的关键。通过本文的指导,读者可以顺利解决相关问题,并更好地掌握MySQL在Linux环境下的部署与管理。 ... [详细]
  • 深入解析HTTPS:保障Web安全的加密协议
    本文详细探讨了HTTPS协议在保障Web安全中的重要作用。首先分析了HTTP协议的不足之处,包括数据传输过程中的安全性问题和内容加密的缺失。接着介绍了HTTPS如何通过使用公钥和私钥的非对称加密技术以及混合加密机制,确保数据的完整性和机密性。最后强调了HTTPS的安全性和可靠性,为现代网络通信提供了坚实的基础。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
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社区 版权所有