摘要算法
是一个唯一对应一个消息或文本的固定长度的值,
由一个单向hash函数对消息进行计算而产生,
将需要计算内容“摘要成固定长度的串,这个串也称为数字指纹
同样的明文其摘要必定一致
-
MD5 Message Digest Algorithm 5 ,是数字摘要算法的一种实现
长度为128位 -
SHA Secure Hash Algorithm 安全散列算法
长度为160位 -
十六进制编码
-
Base64 编码 ,64个可打印字符来表示二进制数据的方法
可以通过逆向得出编码之前的信息
只是一种编码算法,将一组二进制信息编码成可打印的字符
在网络上传输与展现
对称加密
加密和解密都依赖同一个密钥
-
DES Data Encryptin Standard
获取密钥生成器
这是密钥位数,就可以生成des算法的密钥,每次生成的都不相同 -
AES Advance Encyption Standard 高级加密标准
非对称加密
需要两个密钥
一个称为公开密钥
另一个称为私有密钥
公私钥需要配对使用
- RSA 算法
数字签名
签名认证是对非对称加密技术与数字摘要技术的综合运用
将通信内容的摘要信息使用发送者的私钥进行加密,
然后将密文与原文一起传输给信息的接收者,
-
MD5withRSA
使用md5算法生成需要发送征文的数字摘要,
使用RSA算法来对正文进行加密和解密 -
SHA1withRSA
使用SHA-1算法生成正文的数字摘要,
使用RSA算法对摘要进行加密和解密 -
数字证书
身份证、驾驶证等
通过和证书机构进行校验后,确定数字证书的真假-
X.509
将证书信息规范地存储到一系列可解析的字段中 -
证书签发
需要数字证书认证机构Certificate Authority来进行颁发,
只有经过CA颁发的数字证书在网络中才具备认证性
-
-
证书校验
-
OpenSSl
包含一个开源的SSL协议的实现
包括SSL协议库、密码算法库,以及各种与之相关的应用程序
摘要认证
针对每次请求和响应,
按照一定的规则生成数字摘要,
防止请求信息被篡改
摘要认证的实现
- 客户端参数摘要生成
- 参数排序
- 参数拼接,加上secrte
- 使用md5等摘要算法生成摘要
- 服务端参数摘要检验
- 参数排序
- 参数拼接,加上secret
- 生成摘要
- 对比摘要串是否篡改
- 服务端响应摘要生成和客户端响应摘要校验
签名认证
与摘要方式类似,
不过加密的方式使用的是私钥,
解密时使用的是公开的私钥
https 协议
就是基于ssl的http协议
https协议能够确保整个通信过程都是经过加密的
密钥随机产生
能够通过数字证书验证通信双方的身份,确保信息安全,
证书中包含了一些基本信息,签名信息等,
通信的内容使用对称加密方式进行加密,
通信的两端约定好通信密码后,
公钥加密,私钥解密。
私钥数字签名,公钥验证。
-
SSL 安全套接层,是一种网络安全协议
在传输层与应用层之间进行数据通信的加密 -
TLS Transport Layer Security 传输层安全协议
-
都可以分为两层
- Record Protocol 记录协议
- Handshake Protocol 握手协议
记录协议:建立在可靠的传输协议上TCP,对数据封装、加解密等
握手协议建立在记录协议上,
在实际数据传输开始,进行加密算法的协商,通信密钥的交换等
真正的数据交换阶段,实际上数据是通过对称加密算法来实现加密的
OAuth授权过程
ISV第三方
consumer 用户
platform 平台商