如何检查字符串是否是PHP中的有效sha256哈希?

Fel*_*sco 4 php encryption hash sha sha256

如何使用PHP识别sha256哈希?另外,有没有办法确定字符串是否是sha256哈希,即使它是盐渍的?

我不需要知道哈希的真正价值(我知道这是不可能的),但我只需要验证字符串,所以如果字符串是sha256哈希,我可以以某种方式工作,如果它是另一种方式不是.

Mer*_*gic 7

当你说:“即使它是咸的”时,我不明白你的意思。Salting 发生在散列之前,它提供了一些防止彩虹表攻击和用户在多个站点上使用相同密码的保护。根据基础,一个简单的正则表达式可以告诉您特定字符串是否是 sha256 哈希。我认为大多数时候我们会在 base16 中遇到哈希,在这种情况下,这会起作用:

   if (preg_match("/^([a-f0-9]{64})$/", $hash) == 1) {
      return true;
   } else {
      return false;
   }
Run Code Online (Sandbox Code Playgroud)

  • 我到这里来寻找验证字符串是否真的是 sha256 的方法。因为其他人可能有同样的问题,所以我添加了一个答案。:) (4认同)
  • 2年后它仍然有用! (2认同)

小智 5

检查散列是否是有效SHA-256散列的唯一方法是检查其中的256位 - 如果是,则是某些输入CAN可能生成该输出.

哈希是一种方式,这意味着我可以给你一个哈希,你永远不能解密它(这是哈希和加密之间的区别).这适用于存储密码,以及纯文本值无关的情况.