[log]常见的安全算法

摘要算法

是一个唯一对应一个消息或文本的固定长度的值,
由一个单向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协议库、密码算法库,以及各种与之相关的应用程序

摘要认证

针对每次请求和响应,
按照一定的规则生成数字摘要,
防止请求信息被篡改
在这里插入图片描述

摘要认证的实现

  • 客户端参数摘要生成
    1. 参数排序
    2. 参数拼接,加上secrte
    3. 使用md5等摘要算法生成摘要
  • 服务端参数摘要检验
    1. 参数排序
    2. 参数拼接,加上secret
    3. 生成摘要
    4. 对比摘要串是否篡改
  • 服务端响应摘要生成和客户端响应摘要校验

在这里插入图片描述

签名认证

与摘要方式类似,
不过加密的方式使用的是私钥,
解密时使用的是公开的私钥

https 协议

就是基于ssl的http协议

https协议能够确保整个通信过程都是经过加密的
密钥随机产生
能够通过数字证书验证通信双方的身份,确保信息安全,
证书中包含了一些基本信息,签名信息等,
通信的内容使用对称加密方式进行加密,
通信的两端约定好通信密码后,

公钥加密,私钥解密。
私钥数字签名,公钥验证。

  • SSL 安全套接层,是一种网络安全协议
    在传输层与应用层之间进行数据通信的加密

  • TLS Transport Layer Security 传输层安全协议

  • 都可以分为两层

    • Record Protocol 记录协议
    • Handshake Protocol 握手协议

记录协议:建立在可靠的传输协议上TCP,对数据封装、加解密等

握手协议建立在记录协议上,
在实际数据传输开始,进行加密算法的协商,通信密钥的交换等

在这里插入图片描述

在这里插入图片描述

真正的数据交换阶段,实际上数据是通过对称加密算法来实现加密的

OAuth授权过程

ISV第三方
consumer 用户
platform 平台商
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/java_sparrow/article/details/90321478