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

时间:2012-10-16 11:38:36

标签: php encryption sql-update sha1

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

由于我现在使用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;
    }

4 个答案:

答案 0 :(得分:7)

在哈希之前检查输入

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

CodePad

答案 1 :(得分:2)

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

更好的方法是在散列之前检查空虚。

答案 2 :(得分:1)

da39a3ee5e6b4b0d3255bfef95601890afd80709的SHA1哈希值是一个众所周知的空字符串哈希值。检查此值。

答案 3 :(得分:1)

你可以做些什么来检查密码字段是否为空是使用strlen()来检查你实际发送的字符串的长度,所以如果字符串长于0,那么它不是空的,否则显示一个错误,告诉他们他们的密码字段是空的,不要将它添加到数据库中。此外,由于SHA1使用单向加密方法,因此无法将SHA1转换或转换回原始字符串。