加密解密之——总结
概念
加密解密是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
分类
单向加密
概念
- 只是对信息进行了摘要计算
- 不能通过算法生成明文
- 是一种摘要算法
常见的单向加密
BASE64
概念
- Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
- Base64只能算是一个编码算法,对数据内容进行编码来适合传输
- 最终都会对加密后的二进制数据进行Base64编码,起到一种二次加密的效果
基本规则
- 标准Base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号
- Base64编码后的字符串一定能被4整除
- 等号一定用作后缀,且数目一定是0个、1个或2个
- 严格来说Base64不能算是一种加密,只能说是编码转换
Base64编码的用处
- 那些不可见字符就有可能被处理错误,这是不利于传输的
- 先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了
具体实现
- 字符串操作
- 文件操作
MD5
概念
- MD5英文全称“Message-Digest Algorithm 5”
- 由MD2、MD3、MD4演变过来的,是一种单向加密算法
特点
- 压缩性
- 容易计算
- 抗修改性
- 强抗碰撞
应用场景
- 一致性验证
- 数字签名
- 安全访问认证
安全性探讨
- 对字符串多次MD5加密
- MD5加盐
SHA
概念
- SHA(Secure Hash Algorithm,安全散列算法)
- 数字签名等密码学应用中重要的工具
- 可以通过碰撞法破解
- SHA仍然是公认的安全加密算法,较之MD5更为安全
HMAC
概念
- HMAC(Hash Message Authentication Code,散列消息鉴别码)
- 基于密钥的Hash算法的认证协议
原理
- 用公开函数和密钥产生一个固定长度的值作为认证标识
- 用这个标识鉴别消息的完整性
- 使用一个密钥生成一个固定大小的小数据块(MAC),并将其加入到消息中然后传输
- 接收方利用与发送方共享的密钥进行鉴别认证等
双向加密
概念
- 明文加密后形成密文
- 可以通过算法还原成明文
分类
对称加密
概念
密钥
控制加密及解密过程的指令
定义
- 采用单钥密码系统的加密方法
- 同一个密钥可以同时用作信息的加密和解密
- 也称为单密钥加密
- 也称为密钥加密
特点
- 采用这种加密方法的双方使用方式用同样的密钥进行加密和解密
- 对称式加密本身不是安全的
常用的对称加密
- DES
- AES
- IDEA
- RC2
- RC4
- SKIPJACK
- RC5
- 异或算法
非对称加密
概念
- 公开密钥(publickey)
- 私有密钥(privatekey)
特点
- 非对称加密算法需要两个密钥
- 公开密钥与私有密钥是一对
- 用公开密钥对数据进行加密,用对应的私有密钥才能解密
- 用私有密钥对数据进行加密,用对应的公开密钥才能解密
常见的非对称算法
- RSA
- DSA