如何使用PHP识别sha256哈希?另外,即使加了盐,是否有办法识别字符串是否为sha256哈希?
我不需要知道哈希的真实值(我知道这是不可能的),但我只需要验证字符串,以便在字符串是sha256哈希的情况下采取一种方式,并在不是sha256哈希的情况下采取另一种方式。
如何使用PHP识别sha256哈希?另外,即使加了盐,是否有办法识别字符串是否为sha256哈希?
我不需要知道哈希的真实值(我知道这是不可能的),但我只需要验证字符串,以便在字符串是sha256哈希的情况下采取一种方式,并在不是sha256哈希的情况下采取另一种方式。
当你说“即使它被盐了”时,我不明白你的意思。盐值是在哈希之前添加的,它可以防止彩虹表攻击以及用户在多个网站上使用相同密码的情况。根据基数,一个简单的正则表达式就可以告诉你一个特定字符串是否是sha256哈希。我认为大多数情况下我们会遇到16进制的哈希值,在这种情况下,以下方法可以使用:
if (preg_match("/^([a-f0-9]{64})$/", $hash) == 1) {
return true;
} else {
return false;
}
检查一个哈希值是否是有效的SHA-256哈希值的唯一方法是检查其中的256位 - 如果确实有,那么某些输入可能会生成该输出。
哈希是单向的,这意味着我可以给你一个哈希值,但你永远无法解密它(这是哈希和加密之间的区别)。这对于存储密码等内容非常有用,因为明文值是不相关的。