我的身份证明不起作用,我的代码在下面。
<?php
$login = "super";
printf(crc32($login)); // result -691938802
printf("%u",crc32($login)); //result 3603028494
if(crc32($login) * -1 == -3603028494) {
echo "user correct";
}else{
echo "user false";
}
?>
我总是让用户弄错,所以,我认为问题来自%u,我如何用$login = "%usuper"
之类的东西来改变我的$ login变量
所以我的身份验证代码工作?是否可以在不更改条件的情况下更改$login
值,因为我将来会以登录形式使用它。
感谢。
答案 0 :(得分:0)
crc32()
返回一个int,它是一个带符号的32位整数。您显示的两个数字是相同的数字,即完全相同的32位,只是解释不同。 2 ^ 32 - 691938802 == 3603028494。没问题。