加盐密码保存的最通用方法是?
发布网友
发布时间:2024-10-24 06:21
我来回答
共1个回答
热心网友
时间:2024-10-24 07:44
安全加密方案的终极目标是即使数据被拖库、代码泄露或请求被劫持,也能保障用户密码不泄露。
在密码加密方面,直接使用MD5已不安全,因为彩虹表能轻易反推出短密码。所以,通常会对密码进行加盐哈希(Salted Hash),即在密码后添加一段随机生成的盐(Salt)后再进行加密。
使用SHA-512代替MD5更为安全,因为它更难破解。加盐哈希可以使得即使攻击者获取到最终结果,也难以反推出原始密码。然而,为应对暴力破解,可以采用加盐的慢哈希函数,如bcrypt,调整参数使得暴力破解所需时间极长。
解决方案中包括了非对称加密的密钥协商算法,用于在通信内容公开的情况下协商出双方独享的密钥,以及对称加密传输数据。协商密钥后,客户端会发送自己的公钥和加密的用户ID给服务器,服务器则返回包含Salt的加密数据。客户端使用Salt计算两个加盐哈希。在验证密码时,服务器与客户端通过时间恒定的比较函数、防止试探性攻击,并记录数据包发送时间以防止录制回放攻击。
密码验证通过后,服务器生成一个随机临时密钥,客户端使用该密钥加密数据进行传输。这样即使数据被拖库,密码安全依然能得到保障。