7

如何使用 PHP 识别 sha256 哈希?此外,是否有任何方法可以识别字符串是否是 sha256 哈希,即使它是加盐的?

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

4

2 回答 2

9

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

   if (preg_match("/^([a-f0-9]{64})$/", $hash) == 1) {
      return true;
   } else {
      return false;
   }
于 2018-11-08T11:42:24.823 回答
7

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

散列是一种方式,意味着我可以给你一个散列,而你永远无法解密它(这是散列和加密之间的区别)。这适用于存储密码等与纯文本值无关的情况。

于 2013-06-01T17:29:50.793 回答