我想知道是否有一种方法可以改变我的网站散列密码的方式。当他没有在sha512哈希中添加盐时,我的编码器朋友不是最聪明的。所以现在它非常不安全,我希望改变它。当有人使用旧的哈希类型登录并且在添加盐之后将变量设置为true时,我正在考虑制作一些复杂的代码来重新进行重新编码。或者我可以使用当前的哈希密码并以某种方式将盐融合到它们中。如果我不需要,我宁愿不重置我的用户数据库。任何想法都会有帮助。我也是php noob所以请解释一下你是否包含代码。
使用此方法进行哈希处理。
<?php hash('sha512',"passwordhere") ?>
答案 0 :(得分:2)
当然,您还需要更新代码以进行注册,密码更改/恢复等。
或者,您可以放入'hash_ver'列并使用它来确定要使用的验证方法以及何时更新散列,而不是'salt'列。这样一来,如果您希望使用散列方法将盐包装在像bcrypt这样的散列中,那么您就不会试图找出您正在处理的散列类型。
答案 1 :(得分:1)
每个密码存储系统都必须具有切换到更好的哈希算法的选项,您的问题不是一次性迁移问题。在回答question时,我试图指出必要的步骤。
注意:像SHA- *这样的快速哈希算法不适合哈希密码,而是直接切换到像BCrypt这样的慢键派生函数。新的PHP函数password_hash()将使哈希变得容易(它将为您生成安全的盐),并且是“未来证明”,它也将在未来进行切换。
答案 2 :(得分:0)
$old_hash = hash('sha512',"passwordhere");
$salt = ''; // Generate salt here
$new_hash = hash('sha512', $old_hash.$salt) ;