引子
最近在做google商店支付时,经常需要对支付结果进行解密校验,这是典型的RSA算法。于是把自己理解的加解密算法做一个汇总。
算法类型
- 对称加密
- 不对称加密
- 不可逆加密算法。
我用一把锁举例
对称加密
加密,解密都用同一把钥匙;所以谁拿到了钥匙,就可以打开锁。常见对称加密算法有:DES、AES
不对称加密
- 一把锁有A、B两把钥匙,两把钥匙都可以打开和锁上锁。但是用同一把锁,不能锁锁后,再打开锁。必须由另外一把锁打开。在算法上面成为公钥和私钥。常见的不对称加密有:RSA、SHS
- 公钥和私钥由校验方提供,生成。公布出去的称为公钥,自己保密的称为私钥(外部不可见)。
不可逆算法
则表示锁一旦锁上,任何钥匙都打不开。常见的不可逆算法: MD5
RSA算法应用举例
- Druid在 Spring Boot 中配置数据库密码加密
-
生成密码的密文
image.png
java -cp druid-1.1.4.jar com.alibaba.druid.filter.config.ConfigTools 13uWcIRV0a973m=oLQ
-
配置文件配置
-
* 源代码分析
image.png* 角色说明
Druid用私钥加密,用公钥解密
-
在google支付中的使用
- 支付流程
google会提前将公钥给到应用开发商,再讲支付结果用对应的私钥加密后返回给应用。应用开发商用公钥解密。 - 角色说明
google给出去的是公钥,自己留着的是私钥
- 支付流程
-
对外开放的接口,关键数据采用RSA算法机密。
- token换用户id
生成成对密钥,将公钥发给第三方,将token加密后,传回来,应用利用私钥解密后,返回关键数据。
- token换用户id
MD5算法应用举例
一般用户表的密码会使用MD5加密后做持久化。
网友评论