1.摘要算法:
- MD5 (Message Digest 信息摘要)128位摘要,速度快 数据无论有多大,过程都不可逆转
- SHA1 160位摘要,强度高 都是以固定长度展示
- SHA2 有很多种SHA-224、SHA-256、SHA-384、SHA-512
- 主要用途:验证信息完整性、安全访问认证、数字签名
- 缺点:通过字典的方法进行破解。
名称 | 安全性 | 速度 |
| ----- | --- | -- |
| SHA-1 | 高 | 慢 |
| MD5 | 中 | 快
2.对称加密算法:
- DES 56位、 112位、168位
- AES 128位、192位、256位 加密速度更快,安全性更高
- 特点:加密和解密选择相同的秘钥
| 名称 | 密钥名称 | 运行速度 | 安全性 | 资源消耗 |
|---|
| DES | 56位 | 较快 | 低 | 中 |
| 3DES | 112位或168位 | 慢 | 中 | 高 |
| AES | 128、192、256位 | 快 | 高 | 低 |
3.非对称加密 RSA
- 特点:非对称加密和解密使用不同的秘钥,分为公钥和秘钥。
- RSA 国际标准算法(由 RSA 公司发明 Rivest-Shamir-Adleman)
- ECC 椭圆加密算法( Elliptic Curves Cryptography)
- DSA (Digital Signature Algorithm) 它是另一种公开密钥算法,它不能用作加密,只用作数字签名。签名生成速度很快,验证速度很慢,加密时更慢,但解密时速度很快,安全性与RSA密钥相等,而密钥长度相等。
| 名称 | 成熟度 | 安全性 | 运算速度 | 资源消耗 |
|---|
| RSA | 高 | 高 | 中 | 中 |
| ECC | 高 | 高 | 慢 | 高 |
4.其他 Base64
- 严格定义不算是加密,只是一种编码方式。支持编码与解码。
- 把二进制的流字节转化成可见的字符
栗子
var str = 'javascript';
window.btoa(str)
window.atob("amF2YXNjcmlwdA==")
对于非ASCII码表支持的字符需要用Unicode转码
var str = "China,中国";
window.btoa(window.encodeURIComponent(str))
window.decodeURIComponent(window.atob('Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='))