我不小心在密码存储前停止了哈希处理,所以现在我的数据库中有一些MD5密码和未经哈希处理的密码。
我想循环遍历并对那些不是MD5的密码进行哈希处理。是否可以检查字符串是否为MD5哈希值?
我不小心在密码存储前停止了哈希处理,所以现在我的数据库中有一些MD5密码和未经哈希处理的密码。
我想循环遍历并对那些不是MD5的密码进行哈希处理。是否可以检查字符串是否为MD5哈希值?
function isValidMd5($md5 ='')
{
return preg_match('/^[a-f0-9]{32}$/', $md5);
}
echo isValidMd5('5d41402abc4b2a76b9719d911017c592');
MD5(消息摘要算法)散列通常以32个十六进制数字的文本格式表示。
此函数检查以下内容:
preg_match()
没有匹配,它不会返回false吗? - inhan0-9
和a-f
字符组成,并且长度应为32个字符。 - inhan也许更快一些:
function isValidMd5($md5 ='') {
return strlen($md5) == 32 && ctype_xdigit($md5);
}
!ctype_digit($md5) && ctype_lower($md5) && ctype_alpha($md5)
。 - VeeeneX