2013-01-02 2 views
0

Я пишу систему входа для одного из моих приложений для Android. Я работаю с mysql & php для системы входа в систему, используя запрос на отправку от приложения android для входа. Обратите внимание, что учетная запись также сделана с устройства (Регистрация), теперь вот проблема.Функция php crypt() возвращает «странные результаты»

Функция крипты, кажется, лавируя на много дополнительного материала он содержит правильный хэш пароля, но его не так же, как в базе данных, ее лучше всего, если я покажу вам:

пароль в моей базе данных: $ 6 $ WX6WbSQfm5iN $ ъх/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk

используя правильный пароль точно и с помощью этой функции, как такой

crypt($userPasswordFromPost, $encryptedPasswordFromDB) 

возвращает значение, как это: $ 6 $ WX6WbSQfm5iN $ ъх/B9TKLkcnVDxIPvKc9TUzpWLjD77mlCk kOj43jHRW25ecYfbhgGtm27tVG9oSGHqaKrOugYrBpjwzZ // gel0

Обратите внимание, что я должен был поместить пространство для смелой в строке выше, но там нет места, что это полная строка, возвращаемая этой функцией, как вы можете см. правильный хешированный пароль, есть только много дерьма после него.

System info 
running on: Ubuntu Linux 12.10 (64 bit) 
php version: PHP 5.4.6-1ubuntu1.1 (cli) 

Дополнительная информация предоставляется по запросу. Любая помощь очень приветствуется!

+0

Согласно [документам] (http://php.net/manual/en/function.crypt.php), второй аргумент 'crypt' является необязательной солью. Почему вы передаете ему пароль, хранящийся в БД? –

+1

Пароль из базы данных содержит соль. Посмотрите ниже в документах, первый пример – HcgRandon

+0

пароль в базе данных был создан путем вызова функции crypt ('mypassword') – HcgRandon

ответ

1

Хорошо, я чувствую себя довольно немым в этот момент времени. Мое поле пароля базы данных mysql было ограничено varchar (50), поэтому он отключил пароль, и они не могли быть равными. Я увеличил поле базы данных до 200 бит сверху, но я скорее не буду больше шансов с этим. Спасибо всем за ваше время и благодарю вас, Чарльз за обнаружение проблемы.

Смежные вопросы