我有一个名为Membership的类,其中我有两种方法。第一个叫做validateUser,第二个叫做encryptPass。问题是即使我调用encryptPass方法,它也会返回原始密码。换一种说法;它似乎并没有实际返回数据或它没有正确调用方法?
我是OOP的新手,所以不要因为我现在不太了解而判断我。
这就是我称之为方法的样子:
//validate password and hash it if valid
if(strlen($password) > 25 || strlen($password) < 4) {
$password = $this->encryptPass($password);
$errorArray[] = "Löenordet måste vara mellan 4-25 tecken långt.";
}
这就是实际的encryptPass方法的样子:
function encryptPass($password) {
$salt = substr($password, 2, 4);
$password = md5(md5($password));
$password = substr($password, 0, 20) . $salt . substr($password, 0, 20);
$password = md5($password);
return $password;
}
我把你自己看到的自定义加密算法汇总在一起,也许我会以某种方式搞砸了?
提前致谢!
答案 0 :(得分:1)
除非您的$ password字符串超过25个字符或小于4,否则不会调用您的encryptPass()方法。您确定这是正确的逻辑吗?
答案 1 :(得分:0)
您正在检查if(strlen($password) > 25 || strlen($password) < 4)
,其中英文为“如果字符串的长度大于25或小于4”,这可能不是正确的逻辑。你可能打算做
if (strlen($password) > 4 && strlen($password) < 25)
将检查长度在5到24个字符之间的密码,或
if (strlen($password) >= 4 && strlen($password) <= 25)
如果您想检查长度在4到25个字符之间的密码。