检查字符串是否为 MD5 哈希

2022-08-30 10:33:47

在存储密码之前,我不小心停止了散列密码,因此现在我的数据库混合了MD5密码和未哈希密码。

我想遍历并散列那些不是MD5的。是否可以检查字符串是否为 MD5 哈希?


答案 1

您可以使用以下函数进行检查:

function isValidMd5($md5 ='')
{
    return preg_match('/^[a-f0-9]{32}$/', $md5);
}

echo isValidMd5('5d41402abc4b2a76b9719d911017c592');

MD5(消息摘要算法)哈希通常以文本格式表示为 32 位十六进制数。

此函数检查:

  1. 它仅包含字母和数字(a-f,0-9)。
  2. 它有 32 个字符长。

答案 2

也许更快一点:

function isValidMd5($md5 ='') {
  return strlen($md5) == 32 && ctype_xdigit($md5);
}

推荐