zd112_2023-04-23 14:12
现在给大来自家介绍一下加密方法有几种
方法
- 明文保存:比如用户设置的密码是“123456”,直接将“123456”保存在数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
- 对称加密算法来保存:比如3des、aes等算法,使用这种方式加密是可以通过解密来还原出原始密码的,当然前提条圆件是需要获取到密钥。不过既然大量的用户信息已经泄露了,密钥很可能也会泄露,360新知当然可以将一般数据和款轴系景歌女原盾站试营密钥分开存储、分开管理,但要完全保护好密钥也是一件非常复杂的事情,所以这种方式并不是很好的方式。
- md5、sha1等单向hash算法:使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。其实之前编训鲁顶演家云席们因商公司也是采用的这种状移朝呀派娘总md5加密方式。
- pbkdf2算法:该算法原理大致相当于在hash顶草算法基础上增加随机盐,并进行多次hash运算,随机盐使得刻同味顺死彩虹表的建表难度大幅增加,而多次hash也使得建表和破解的难度都大幅增加。在使用pbkdf2算法时,hash一般会选用sha1或者sha256,随机盐的长度一般不能少于8字节,hash次数至少也要1000次,这样安全性才足够高。一次密码验证过程进行1000次hash运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提田级却委新升了n个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标行胜析准与技术研究院推荐使用的算法。
- bcrypt、scry帮板汉院精矛主让穿伟pt等算法:这两种算法也可以有效抵御彩虹表,使用这两种算法时也需要指定相应的参数,使破解难度增加。在密码学中,scrypt(念作“ess crypt”)是colin percival于2009年所发明的金钥推衍函数,当初设计团叫响则长接粒火普府用在他所创立的tarsnap服务上。设计材万苏题齐族首氧时考虑到大规模的定响做够香门件角么客制硬件攻击而刻军意设计需要大量内存运算。scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利 用rainbow table进行暴力攻击更加困难。scrypt 没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支载持。但是,scrypt 在算法层面只要没有破绽,它的安全性应该高于pbkdf2和bcrypt。
声明本文系本人根据真实经历原创,未经许可,请勿转载。