检查字符串是否为MD5哈希

时间:2013-01-13 04:35:48

标签: php hash md5

我在存储密码之前意外停止了哈希密码,所以现在我的数据库中混合了MD5密码和未使用的密码。

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

2 个答案:

答案 0 :(得分:88)

您可以使用以下功能进行检查:

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

echo isValidMd5('5d41402abc4b2a76b9719d911017c592');

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

此功能检查:

  1. 它只包含字母和数字(a-z,0-9)。
  2. 长度为32个字符。

答案 1 :(得分:31)

也许快一点:

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