对称加密:
加密和解密使用的是同一个密钥,计算量小,常见的DES、AES
1 | 优点:计算量小,简单快速,适合于对海量数据进行加密处理; |
非对称加密:
需要公钥和私钥,公钥对数据进行加密只能用私钥解,常见的:RSA、RCC椭圆曲线加密算法
ps:所以在实际应用场景中,一般把 秘钥 采用非对称加密,数据采用对称加密。
1 | 优点:消除了用户交换密钥的需要,安全性提高; |
Hash算法:
MD5和SHA。SHA又包括 SHA-1 和 SHA-2(SHA-224、SHA-256、SHA-384、SHA-512) 和SHA-3。
MD5直接加密 ( Message-Digest Algorithm-信息摘要算法),种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
特点:a、压缩性:任意长度的数据,可以算出固定长度;
b、不可逆:只有加密,没有对应的解密算法;
1 | //演示下在vue项目中使用MD5 |
MD5加盐
MD5直接加密虽然不可逆,但抵不住网上大把解密网站,通过事先存储各种字符组合的 Hash 加密结果,然后提供查询;即使是两层的 md5 加密也有可能通过彩虹表的方式进行破译,所以MD5直接加密已经不够安全,这时候就需要给密码加盐,以降低被破译的风险;加盐就是人为的通过一组固定字符或随机字符与用户原密码组合形成一个新的字符。
SHA-256
SHA256算法使用的哈希值长度是256位。这是一个抽象类。此类的唯一实现是SHA256Managed;
ps:这里简单介绍了前端加密,需要注意的是,对于用户密码而言,不能因为前端加密了,后端就直接把前端加密得到的字符串直接存储到数据库,这是很危险的,前后端都要进行加密!比如前端MD5加密之后,后端进行第二次md5加密后再把密码存进数据库,这样即使用户密码在传输过程中被窃听,黑客也无法进行登录,因为被窃听的密码和数据库存储的密码不匹配。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !