For some reason I can not get my function to return a string...
$password = crypt_password_input($password, \"\");
//Encrypt Password longer than 8 characters
f
you have no return
statement under this condition block. i have added return there.
if($passwordLength > 8)
{
$encryptString = substr($inputPassword, 0, 8);
$inputPassword = substr($inputPassword, 8);
$newPassword .= crypt($encryptString, "HIDDENSALT");
return crypt_password_input($inputPassword, $newPassword);
}
I am not sure about your logic, but your code should be like this:
$password = crypt_password_input($password, "");
//Encrypt Password longer than 8 characters
function crypt_password_input($inputPassword, $newPassword)
{
$passwordLength = strlen($inputPassword);
if($passwordLength > 8)
{
$encryptString = substr($inputPassword, 0, 8);
$inputPassword = substr($inputPassword, 8);
$newPassword .= crypt($encryptString, "HIDDENSALT");
return crypt_password_input($inputPassword, $newPassword);
}
else
{
$newPassword .= crypt($inputPassword, "HIDDENSALT");
echo "Final: " . $newPassword . "<br/>";
return $newPassword;
}
}
echo "Encrypted from the input: " . $password . "<br/>";
In your code, you are recursively calling the input but not returning anything, so it fails if you have password longer than 8 characters.