Вызов метода шифрования, не работает? - PullRequest
0 голосов
/ 27 августа 2010

У меня есть класс с именем 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;
 }

Я собрал собственный алгоритм шифрования, как вы можетевидите, может я там как-то облажался?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Ваш метод encryptPass () не вызывается, если ваша строка $ password не содержит больше 25 символов или меньше 4. Вы уверены, что это правильная логика?

0 голосов
/ 27 августа 2010

Вы проверяете 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 символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...