用户密码加密方式
用户密码保存到数据库时,常见的加密方式有哪些?以下几种方式是常见的密码保存方式:
1. 明文保存
比如用户设置的密码是“123456”,直接将“123456”保存在数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
2. 对称加密算法来保存
比如3DES、AES等算法,使用这种方式加密是可以通过解密来还原出原始密码的,当然前提条件是需要获取到密钥。不过既然大量的用户信息已经泄露了,密钥很可能也会泄露,当然可以将一般数据和密钥分开存储、分开管理,但要完全保护好密钥也是一件非常复杂的事情,所以这种方式并不是很好的方式。
3. MD5、SHA1等单向HASH算法
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
其实之前公司也是采用的这种MD5加密方式。
4. PBKDF2算法
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
在使用PBKDF2算法时,HASH一般会选用sha1或者sha256,随机盐的长度一般不能少于8字节,HASH次数至少也要1000次,这样安全性才足够高。一次密码验证过程进行1000次HASH运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提升了N个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标准与技术研究院推荐使用的算法。
5. bcrypt、scrypt等算法
这两种算法也可以有效抵御彩虹表,使用这两种算法时也需要 指定 相应的参数,使破解难度增加。
在密码学中,scrypt(念作“ess crypt”)是Colin Percival于2009年所发明的金钥推衍函数,当初设计用在他所创立的Tarsnap服务上。设计时考虑到大规模的客制硬件攻击而刻意设计需要大量内存运算。
Scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利 用rainbow table进行暴力攻击更加困难。Scrypt 没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。但是,Scrypt 在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。
各个算法的特性
总结
采用PBKDF2、bcrypt、scrypt等算法可以有效抵御彩虹表攻击,即使数据泄露,最关键的“用户密码”仍然可以得到有效的保护,黑客无法大批量破解用户密码,从而切断撞库扫号的根源。
【加密软件编辑推荐】
易控网盾加密软件--重要文件防泄密专家!轻松实现单位内部文件自动加密保护,加密后的文件在单位内部正常流转使用。未经许可,任何私自拷贝加密文件外发出去,都将打开为乱码,无法使用!对于发送给客户等第三方的文件,可实现控制打开时间和打开次数等防泄密参数!同时可设置对员工电脑文件自动备份,防止恶意删除造成核心数据的遗失!从源头防止企业核心文件被外泄!
相关页面:加密软件,文件加密,文档加密,图纸加密软件,防泄密软件,CAD加密软件,文件外发加密
一、密钥散列
采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非对称加密
非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
四、数字签名
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。
五、直接明文保存
早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。
六、使用MD5、SHA1等单向HASH算法保护密码
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
七、特殊的单向HASH算法
由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。
八、PBKDF2
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。
九、BCrypt
BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。
十、SCrypt
SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。
如果您使用的是华为手机,您忘记了锁屏密码无法解锁,请按照以下方法尝试解决:
1.确认是否密码被更改
建议您再仔细回忆一下是否自己修改了密码,或者您有与亲朋好友确认过是否在您未携带手机的时候,手机被其他人修改了锁屏密码;若为混合密码一定要注意区分大小写、下划线等,避免输入错误而无法进入系统。
2.确认是否使用了隐私空间
如果锁屏界面的密码位数或类型变更/未设置过密码,但是屏幕出现锁定,可能是您开启了隐私空间,请输入隐私空间的密码尝试进入系统,如果您忘记了隐私空间的密码,可以通过以下方法操作:
(1)使用指纹进入隐私空间
如果您之前开启隐私空间时关联了指纹,那您可以通过指纹解锁进入隐私空间,进入后将数据复制出来(例如使用隐私空间界面的空间克隆功能),然后删除此隐私空间,重新创建隐私空间即可。
温馨提醒:如果您主空间没有设置指纹解锁,将无法在锁屏界面通过指纹快速进入隐私空间。建议您给主空间也设置指纹解锁,或者在设置中搜索隐私空间切换进入隐私空间。
(2)删除隐私空间
如果您之前未在隐私空间中设置密码保护,也未在开启隐私空间时关联指纹。
则需要您删除此隐私空间,因此建议您确认是否被身边的人更改了密码。(删除隐私空间将会删除您隐私空间中的所有数据,请您谨慎操作)。操作如下:
HarmonyOS :在设置中搜索并进入隐私空间删除隐私空间 四个点按钮删除隐私空间 删除。
EMUI11.0及以下:在设置中搜索并进入隐私空间 三个点按钮 删除隐私空间 删除 。
温馨提醒:输入主空间锁屏密码即可删除隐私空间(不是输入隐私空间密码),然后重新创建隐私空间。
3.请确认是否开启了多用户
如果您所在的锁屏界面为子用户界面,使用主用户密码则无法解锁,建议您切换到主用户后尝试解锁,切换方法:点击多用户头像切换,或者您也可以重启手机,重启后默认为主空间。
4.恢复出厂设置
如果您确认遗忘自己的手机密码,需要解锁,我们可以帮助您将手机强制恢复出厂设置。但是手机中的数据也会被清除,且无法恢复,因此建议您再仔细回忆一下是否自己设置/修改了密码,或者请您与亲朋好友确认是否在您未携带手机的时候,手机被其他人设置了锁屏密码,如果确定无法回忆起密码,需要进行强制恢复出厂设置,请您按照以下步骤操作:
a. 手机处于关机状态,且不连接USB线,同时按住电源键和音量上键手机震动后稍等5秒,进入Recovery模式。如果您无法进入Recovery模式,请您在手机关机状态下,同时按住电源键和音量上键,直到出现Recovery模式时放开,此时手机进入Recovery模式。如果您多次尝试还是无法进入Recovery模式,建议您携带购机发票前往华为客户服务中心处理。
温馨提醒:Mate 30 RS、Mate 30 Pro与Mate 30E Pro无实体音量键,在手机开机振动后,连续按电源键5次进入Recovery模式。
b. 通过按音量上下键,选择清除数据,按电源键确认(部分产品支持Recovery触屏操作,可以通过触屏点击进行选择操作);
c. 通过按音量上下键,选择恢复出厂设置,按电源键确认;
温馨提醒:部分机型恢复出厂设置前需要输入”yes“进行二次确认,您可以根据相关提示完成。
d. 恢复出厂设置完成后,手机会返回Recovery界面,此时请您点击重启设备。
温馨提醒:
如果重启后进入激活界面,这是因为您开启了查找我的手机功能,输入正确的华为帐号密码即可正常进入系统。如果您将华为帐号的密码忘记了,请您点击找回密码尝试找回。如果之前的华为帐号已注销,(由于华为帐号一经注销,所有的数据都会被删除,无法恢复)会导致无法登录华为帐号重新使用手机,建议您携带购机发票前往华为客户服务中心处理。
如果您登录了谷歌帐户,强制恢复出厂设置后开机会要求验证您的帐户密码,请您输入之前登录的账户密码即可正常开机,如果您忘记了谷歌账户密码,请您按照忘记密码步骤恢复您的谷歌帐户详细信息。