我正在维护Opencart网站。现在我要更新oc_customers表。
我想将现有客户的密码(md5 + salt)转换为简单的密码格式。
我不想使用过于复杂的格式。我想保持密码就像base64_encode($ testPassword);对于没有问题的新客户。
但对于现有客户,我不知道如何更改md5 + salt - >正常 - > BASE64_ENCODE?
答案 0 :(得分:0)
对于初学者来说,这是一个坏主意,因为在存储密码时,密码腌制是一项重要且非常标准的操作。它实现的主要功能是在恶意第三方获得对数据库的访问权限时保护您的用户。如果发生这种情况,攻击者将不得不分别强制每个密码,这会减慢攻击速度,并防止攻击者使用预先计算的彩虹表。
如果您真的想要这样做,那么您必须同时支持两种身份验证方法并添加每个客户使用哪种方法的标志,然后当您使用旧方法从客户成功登录时,可以访问正确的纯文本密码,您可以用新格式记录。使用salting,攻击者很难推断出原始密码,出于同样的原因,您很难在不知道密码的情况下将它们转换为新格式。 Salting可以防止网站所有者知道实际密码是什么,这是一个理想的功能。
最后,使用base64实际上只是将密码存储为纯文本,因为任何人都可以解码base64_encode' d字符串。散列函数更好,因为你不能像base64一样反转它们,但仍然存在人们可以预先计算大量散列的问题。这就是你想要使用盐腌的原因。