1.加密解密
1.1什么是加密解密
加密∶在网络上传输的原始数据(明文)经过加密后形成(密文)传输,防止被窃取。
解密∶将密文还原成原始数据。
1.2加密方式分类
-
对称式加密:对加密和解密使用的是同一个密钥。
-
非对称式加密∶非对称式加密需要两个密钥(双钥),分别叫公钥和秘钥,这两把秘钥可以相互加解密。公钥公开的,不需要保密,而私钥是保密的。
1.3加密方式详解
-
对称加密技术
DES加密算法
AES加密算法
Base64加密算法 -
非对称加密技术( RSA加密算法)
场景1∶公钥加密,私钥解密
两个用户,A和B,B有双钥,A想要把一个数据报文通过加密的方式发给B.
场景2∶私钥加密:数字签名,公钥解密:验证签名
数字证书由来∶因为公钥是公开的不安全,所以需要第三方的CA(数字证书颁发机构)对公钥加密,加密后的东西就叫∶数字证书。数字证书包括:B用户基本信息及B的公钥的信息。X509的标准。
Fiddler不能直接抓取https协议的数据报文,需要安装一个数宇证书。
https=http+ssl安全传输协议
ssl安全传输协议∶安全套接层,Netscape研发。
- MD5(完全不考虑解密,也叫哈希算法,散列算法)
2.接口签名sign原理
2.1什么是接口签名?
使用用户名,密码,时间戳和所有的排过序之后的参数组合起来,再加密得到的字符串。字符串时唯一的有权访问第三方金融接口的鉴权码。=sign接口签名。
2.2为什么需要做接口签名?
1.防伪装攻击。
2…防篡改攻击3…防重放攻击4…防数据泄露
2.3如何做接口签名?
了解签名规则
- 对所有请求的参数按key按ASCII码做升序排列。{“c”:"“3"”,“D”.“2”,“a”:“1”
{a"“1”,"“D”:“2"”,“c”:“3.”} - 把参数名和参数值连接成字符串∶a=1&b=2&c=3
- 用申请到的appid和appsecret连接到字符串的头部
appid :用户名
appsecret :密码
appid=admin&appsecret=123&a=1&b=2&c=3 - 用时间戳连接到亨符串的尾部
appid=admin&appsecret=123&a=1&b=2&c=3×tamp=124124252 - 然后再把这个字符串安装32位的MD5加密,加密后再转化成大写。
sign = E48B34F95AE8001c99CB86A612538C04 - 还可以限制签名10秒内有效。
3.加解密、签名总结
3.1使用算法
3.2流程图
3.3请求过程
假设有两类系统:平台系统(一)、应用系统(多)
平台:有平台自己的公钥、私钥、以及应用的公钥
应用:有应用自己的公钥、私钥、以及平台的公钥
3.3.1应用发起请求
- 应用:使用平台公钥加密信息,使用应用私钥生成签名
- 平台:使用应用公钥验证签名,使用平台私钥解密信息
3.3.2平台发起请求
- 平台:使用应用公钥加密信息,使用平台私钥生成签名
- 应用:使用平台公钥验证签名,使用应用私钥解密信息