对称加密算法
- 将数据和密钥经过加密算法,收方,可用相同的密钥和相应的逆算法对密文进行解密
名称 | 密钥长度 | 运算速度 | 安全性 | 资源消耗 |
---|---|---|---|---|
DES | 56位 | 较快 | 低 | 中 |
3DES | 112位或168位 | 慢 | 中 | 高 |
AES | 128、192、256位 | 快 | 高 | 低 |
非对称算法
- 使用两把不同却又匹配的一对公钥和私钥,发信方必须知道收信方的公钥,并且使用公钥发送,私钥只有收信方知道,收信方使用私钥进行接收(加密密钥和解密密钥不同)
名称 | 成熟度 | 安全性(取决于密钥长度) | 运算速度 | 资源消耗 |
---|---|---|---|---|
RSA | 高 | 高 | 慢 | 高 |
DSA | 高 | 高 | 慢 | 只能用于数字签名 |
ECC | 低 | 高 | 快 | 低 |
对称与非对称算法比较
算法名称|密钥管理|安全性|速度
----|----|----|----|----
对称|比较难,常用于内部系统|中|快,适合大数据
非对称|密钥容易管理|高|慢,适合小数据
散列算法比较
名称 | 安全性 | 速度 |
---|---|---|
SHA-1 | 高 | 慢 |
MD5(不可逆) | 中 | 快 |
常见加密算法
- DES:对称算法,数据加密标准,速度较快,适用于加密大量数据的场合
- 3DES:是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高
- RC2 / RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快
- IDEA:国际数据加密算法,使用 128 位密钥提供非常强的安全性
- RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法;
- DSA:数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法
- MD5:严格来说不算加密算法,只能说是摘要算法
- AES:高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高
- BLOWFISH:它使用变长的密钥,长度可达448位,运行速度很快
哈系和加密的区别
总结
-
Node.js
中引入了crypto
模块,有AES,md5,sha1,DH
等API - demo地址
- https是通过安全证书来传输的,我觉得相对安全,如果用http传输的话,传输过程中可能会遇到攻击
- 前端对称加密后发送给后台,有一定的安全意义,因为中间人拿到的是密文,不过如果前后端加密算法相同,也可以拿密文直接登录,也不是很安全
- 非对称加密比对称加密更安全,因为就算拿到了密文,没有收信方的私钥,也无法破解
参考文章推荐:
各种加密算法比较
JavaScript简明教程之Node.js
JS实现密码加密(base64, md5, sha1)
当我们在谈论前端加密时,我们在谈些什么