加密解密之——总结

概念

加密解密是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。

分类

单向加密

概念

  1. 只是对信息进行了摘要计算
  2. 不能通过算法生成明文
  3. 是一种摘要算法

常见的单向加密

BASE64

概念
  1. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
  2. Base64只能算是一个编码算法,对数据内容进行编码来适合传输
  3. 最终都会对加密后的二进制数据进行Base64编码,起到一种二次加密的效果
基本规则
  1. 标准Base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号
  2. Base64编码后的字符串一定能被4整除
  3. 等号一定用作后缀,且数目一定是0个、1个或2个
  4. 严格来说Base64不能算是一种加密,只能说是编码转换
Base64编码的用处
  1. 那些不可见字符就有可能被处理错误,这是不利于传输的
  2. 先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了
具体实现
  1. 字符串操作
  2. 文件操作

MD5

概念
  1. MD5英文全称“Message-Digest Algorithm 5”
  2. 由MD2、MD3、MD4演变过来的,是一种单向加密算法
特点
  1. 压缩性
  2. 容易计算
  3. 抗修改性
  4. 强抗碰撞
应用场景
  1. 一致性验证
  2. 数字签名
  3. 安全访问认证
安全性探讨
  1. 对字符串多次MD5加密
  2. MD5加盐

SHA

概念
  1. SHA(Secure Hash Algorithm,安全散列算法)
  2. 数字签名等密码学应用中重要的工具
  3. 可以通过碰撞法破解
  4. SHA仍然是公认的安全加密算法,较之MD5更为安全

HMAC

概念
  1. HMAC(Hash Message Authentication Code,散列消息鉴别码)
  2. 基于密钥的Hash算法的认证协议
原理
  1. 用公开函数和密钥产生一个固定长度的值作为认证标识
  2. 用这个标识鉴别消息的完整性
  3. 使用一个密钥生成一个固定大小的小数据块(MAC),并将其加入到消息中然后传输
  4. 接收方利用与发送方共享的密钥进行鉴别认证等

双向加密

概念

  1. 明文加密后形成密文
  2. 可以通过算法还原成明文

分类

对称加密

概念
密钥

控制加密及解密过程的指令

定义
  1. 采用单钥密码系统的加密方法
  2. 同一个密钥可以同时用作信息的加密和解密
  3. 也称为单密钥加密
  4. 也称为密钥加密
特点
  1. 采用这种加密方法的双方使用方式用同样的密钥进行加密和解密
  2. 对称式加密本身不是安全的
常用的对称加密
  1. DES
  2. AES
  3. IDEA
  4. RC2
  5. RC4
  6. SKIPJACK
  7. RC5
  8. 异或算法

非对称加密

概念
  1. 公开密钥(publickey)
  2. 私有密钥(privatekey)
特点
  1. 非对称加密算法需要两个密钥
  2. 公开密钥与私有密钥是一对
  3. 用公开密钥对数据进行加密,用对应的私有密钥才能解密
  4. 用私有密钥对数据进行加密,用对应的公开密钥才能解密
常见的非对称算法
  1. RSA
  2. DSA

思维导图