如何使用 SHA1 时检查 PHP 字段是否为空



我正在使用SHA1加密密码。在我的原始代码中,我检查了密码字段是否为空:if (empty($newpassword) and (empty($newpassword 2))) { }

由于我现在使用 SHA1 并且当字段留空时它会自动生成 da39a3ee5e6b4b0d3255bfef95601890afd80709,因此如何重写代码?

将 da39a3ee5e6b4b0d3255bfef95601890afd80709 翻译回字符串?还是别的什么?

请帮忙。

    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        // oude password controle
        if ($password == $qpassword)
            $oudpassword_goed = 1;
        // password controle
        if ($newpassword == $newpassword2)
            $newpassword_goed = 1;
        if (empty($newpassword) and (empty($newpassword2)))
            $newpassword_goed = 2;
        // email controle
        if ($email == $email2)
            $email_goed = 1;
    }

只需在散列之前检查输入即可。

另外,不要使用empty()。这将告诉您用户输入了一个密码,如果他们的密码0(当然,您不允许只有一个字符的密码,对吧?

代码板。

您可以检查da39a3ee5e6b4b0d3255bfef95601890afd80709以检查它是否为空。

更好的是在哈希之前检查空性。

检查密码字段是否为空,您可以做的是使用 strlen() 检查您实际发送的字符串的长度,因此如果字符串长于 0 ,则它不为空,否则会显示错误,告诉他们他们的密码字段为空并且不要将其添加到数据库中。此外,没有办法将SHA1转换回原始字符串,因为SHA1是一种加密哈希算法,这会破坏其背后的目的。散列和加密之间的主要区别在于一个可以解密,另一个不能。然而,这并不意味着SHA1哈希不能被暴力破解,它们确实很容易成为目标,而且MD5,但这是在这个范围之外的另一个对话。

da39a3ee5e6b4b0d3255bfef95601890afd80709的 SHA1 哈希是空字符串的众所周知的哈希。对照此值进行检查。

最新更新