Base64
Base64作为密码学的基础,是网络上最常见的用于传输8Bit字节码的编码方式之一
基本原理:原本是 8个bit 一组表示数据,改为 6个bit一组表示数据,不足的部分补零,每 两个0 用 一个 = 表示
特点:
- 具有不可读性,需要解码后才能阅读
- 没有密钥的概念,可以轻松破解
应用:http请求中数据的转码,可以作为后台密码的保存
MD5
MD5(Message Digest Algorithm 中文名为消息摘要算法第五版)严格来说并不算是加密的方式,因为MD5具有不可逆性,所以不能解密(简单的可以破解),它属于哈希算法,哈希,也叫做散列、数据摘要,是一类基础而又实用的算法,哈希函数的作用就是把某一类不定长的对象映射为另一类固定长度的对象。而MD5能够把一个任意长度的字节串变换成一定长度的十六进制的大整数
特点:
- 压缩性 : 任意长度的数据,算出的 MD5 值长度都是固定的.
- 容易计算 : 从原数据计算出 MD5 值很容易.
- 抗修改性 : 对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.
- 弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的.
- 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的 应用:文件的校验,数字签名,安全访问认证
AES
AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用
属于对称加密算法
特点:
- AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个
- 私钥与公钥相同
- 强安全性
- 高性能、高效率、易用和灵活 应用:密码加密,http数据的传输
RSA
RSA公钥加密算法,是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,目前为止只有短的RSA钥匙才可能被强力方式解破,是菲对称加密算法
RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥, 对于加密原理可以点击这里
特点:
- 对于一个私钥,有且只有一个与之对应的公钥。生成者负责生成私钥和公钥,并保存私钥,公开公钥
- 强安全性,公钥是公开的,但不可能通过公钥反推出私钥,或者说极难反推,只能穷举,所以只要密钥足够长度,要通过穷举而得到私钥,几乎是不可能的
- 通过私钥加密的密文只能通过公钥解密,公钥加密的密文只有通过私钥解密 应用:密码加密,http数据的传输