网站首页 > 技术文章 正文
目前常用的加密/解密算法主要有两类:对称加密算法和非对称加密算法。两者的主要区别在于加密和解密的密钥是否一致,一致的就是对称加密,不一致的就是非对称加密。对称加密常用的是AES加密算法,非对称加密常用的是RSA加密算法。下面分别介绍RSA加密算法和AES加密算法在支付中的应用。
RSA是一种非对称加密算法,可以在不传递密钥的情况下完成解密,避免了对称加密直接传递密钥所造成的被破解的风险。RSA加密/解密由一对密钥(公钥和私钥)共同完成,公钥是公开的,用来加密,私钥是保密的,用来解密。两者之间通过一定的算法关联,最核心的思想是利用对一极大整数做因数分解的困难性来保证安全性。
1. RSA加密过程
假设甲是支付机构,乙是支付机构的商户,甲乙之间需要进行数据的传输。如果要对数据进行加密/解密,则需要先生成密钥:甲生成一对密钥(公钥和私钥),公钥给乙,私钥自己保留。同样乙也生成一对公钥和私钥,公钥给甲,私钥自己保留。具体过程如图2-6所示。
有了密钥之后,就可以对传输的数据进行加密了。数据传输是双向的,所以支付行业传输数据的加密/解密也是双向的,具体步骤如下:
(1)乙使用甲的公钥加密要传输的数据,并把数据上送给甲。
(2)甲接收数据,使用自己的私钥解密。
(3)甲将处理后的结果数据使用乙的公钥加密,并返回给乙。
(4)乙接收返回的数据,并使用自己的私钥解密。
以上步骤是一个支付机构比较标准的加密/解密流程。甲乙双方分别使用对方的公钥加密,使用自己的私钥解密,具体流程如图2-7所示。
2.AES加密/解密
AES是一种经典的对称加密/解密算法,使用加密函数和密钥来完成对明文的加密,然后使用相同的密钥和对应的函数来完成解密。AES的优点在于效率非常高,相比RSA要高得多。AES的加密/解密过程如图2-8所示。
AES的加密和解密需要借助密钥,密钥是提前生成的,支付机构根据一定的规则生成密钥之后,传输给商户,商户上送数据需要使用密钥进行加密,支付机构收到密文之后使用相同的密钥进行解密。
在支付领域,考虑到对安全性和高效性的要求,通常不会只采用一种加密算法,而是采用多种加密算法组合加密的方式。RSA加密算法虽然安全,但是计算量非常大,效率比较低,在高并发的情况下会面临严重的性能问题。AES加密的密钥key在网络传输中有被拦截的风险,存在很大的安全隐患。所以通常的办法是使用RSA来加密AES的密钥,使用AES来对报文进行加密。
内容摘自《支付架构实战》,作者苏博亚,支付领域资深技术专家,在支付行业深耕十余年,先后在随行付支付有限公司、美团、有赞科技从事支付业务的开发、设计、架构工作。获得认证:
PMP(项目管理人士资格认证)
OCP(Oracle数据库认证专家)
猜你喜欢
- 2025-07-01 Java 如何加载带密码的 PCKS8 PEM 私钥
- 2025-07-01 犯罪啊 2.8万台路由器居然共用一把RSA密钥
- 2025-07-01 HTTPS全站加密时代 网宿推证书优选方案
- 2025-07-01 如何在 Windows 11 或 10 上使用 Winget 安装 OpenSSH
- 2025-07-01 网络篇:朋友面试之https认证加密过程
- 2025-07-01 如何安全管理SSH密钥以防止服务器被入侵
- 2025-07-01 在 Windows 10 上实现免密码 SSH 登录
- 2025-07-01 HTTPS的加密过程是怎样的?(https加密和解密的过程)
- 2025-07-01 Linux系统实现SSH安全免密登录的设置与管理
- 2025-07-01 Burpsuit插件开发之RSA加解密(burpsuite安装插件)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)