У меня есть класс под названием Membership, в котором у меня есть два метода. Первый называется validateUser, а второй называется encryptPass. Проблема в том, что, хотя я называю метод encryptPass, он возвращает исходный пароль. Другими словами; похоже, что это фактически не возвращает данные или неправильно вызывает этот метод?Метод шифрования вызовов, не работает?
Я новичок в ООП, поэтому не судите меня за то, что я не очень много знаю.
Вот как это выглядит, были, я называю метод:
//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;
}
Я бросил вместе собственный алгоритм шифрования, как вы можете Видишь, может быть, я как-то испортил?
Заранее благодарен!
'md5' не является шифром, он является односторонним (хотя [небезопасным] (http://en.wikipedia.org/wiki/Md5#Collision_vulnerabilities)/скомпрометированным) [хеширующая функция] (http: // en.wikipedia.org/wiki/Hash_function). –
Это не «пользовательский алгоритм шифрования», и вы создаете менее безопасный хэш, чем если бы вы имели один вызов 'md5()'. – meagar
Как это? Как вы могли бы расшифровать этот хеш, не зная «алгоритм шифрования»? Если это не алгоритм шифрования, как вы это называете? – Nike