gpt4 book ai didi

php - 这个散列有多安全? (PHP)

转载 作者:可可西里 更新时间:2023-10-31 23:52:48 26 4
gpt4 key购买 nike

function oneWayEncrypt($string) { 
$salt = md5($string."yHuJ@8&6%4#%([@d-]");
$salt2 = md5($string."@!#&+-)jU@[yT$@%");

$string = hash('sha512',"$salt$string$salt2");

return $string;
}

最佳答案

使用 SHA-512 是获得加密强哈希的好主意,但您选择的盐不会增加太多额外的安全性。特别是,盐只有在其值是随机的且无法提前预测时才是好的。这可以防止攻击者预先计算已知散列表来尝试攻击您的数据库。如果盐是已知的,那么攻击者可以使用硬编码的盐预先计算哈希值表。

在您的情况下,攻击者基本上知道盐,因为它是根据输入字符串确定性计算的。如果我想攻击你的系统,我可以遍历一堆已知的字符串,(确定性地)计算每个字符串的加盐值,然后计算加盐字符串的 SHA-512 散列并将其存储在表中。由此,我可以将哈希值反转为我碰巧预先计算的任何字符串的密码。

如果您想要更好的安全系统,请考虑使用随机生成的盐,然后将其与生成的哈希一起存储。这样,无论我预先计算什么表,该表都有用的可能性很小,因为我不必为所有可能的盐计算表。本质上,你的盐中的每个随机位都会使我必须做的工作量加倍,所以如果你选择一个好的随机盐(比如 128 位),那么我就没有可行的方法可以进行预计算攻击。我必须攻击 SHA-512,一种被认为是加密安全的散列(该名称的意思是“安全散列算法”),以破坏您的系统。

关于php - 这个散列有多安全? (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com