Я недавно начал изучать PHP и пытался создать безопасный вход в систему после этого руководства http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL.Не могу войти в мой безопасный сценарий входа в систему PHP и MySQL
Все, кажется, работает отлично для меня, кроме входа(). Который я немного подправил. я поставил некоторое эхо, чтобы попытаться придавить указать ошибку, она возвращает ошибку на пароле сравнение IF:
Функции возвращает: Войти ошибку функции 1
Функции Войти находится в включает/функцию. php:
$password = hash('sha512', $password . $salt);
if ($db_password == $password) {
echo "Password is correct!";
sha512.js находится здесь pajhome.org. uk/crypt/md5/sha512 .html, и форму из вышеупомянутого WikiHow.
Соединение не является проблемой, я использую одно и то же соединение для вставки в MySQL, и он работает.
Спасибо за внимание, оказанное моей проблеме, и если я не разглашаю достаточную информацию, пожалуйста, совет.
EDIT: удалено много кода, так как @SeanWM прокомментировал, я не должен ожидать, что никто не сможет пройти через весь код.
@Robert Rozas Благодарим за помощь. пароли действительно несовместимы. Выход:
Войти ошибка Функция 1 c2d872cb4c6a1b3c22ce35fb9dc0dfca14aa6d48 против c2d872cb4c6a1b3c22ce35fb9dc0dfca14aa6d48cc2e8c3dcf02c87a3dfb7e3fec2a098b932c11655960e43bb89af058220ff8d75c666fe57ef7206b74d5f9af
Пожалуйста, посмотрите на то, как строится пароль:
Это идет от формы регистра в .js:
// Add the new element to our form.
form.appendChild(p);
p.name = "p";
p.type = "hidden";
p.value = hex_sha512(password.value);
, а затем через php:
$password = filter_input(INPUT_POST, 'p', FILTER_SANITIZE_STRING);
// Create a random salt
$random_salt = hash('sha512', uniqid(openssl_random_pseudo_bytes(16), TRUE));
// Create salted password
$password = hash('sha512', $password . $random_salt);
, а затем вставлен в MySQL. Если бы вы могли, пожалуйста, указать мне еще раз в правильном направлении, я был бы признателен.
EDIT 2: Благодаря входу от @Second Rikudo он работал после удаления двойного хэширования
Но в свете замечаний, полученных от второго Rikudo «sha512 не является безопасным» и @tadman «Это учебник беспокойно неполный и использует опасно вредные методы » Я решил пересмотреть код, используя https://github.com/ircmaxell/password_compat , как советовал Второй Рикудо.
Чтобы сообщить об этом, я даже не стал читать это. Пожалуйста, не публикуйте весь свой код и попросите его исправить его. Попытайтесь сузить вопрос, чтобы он был немного более конкретным. Вы должны прочитать это [это] (http://stackoverflow.com/help/how-to-ask). – SeanWM
@SeanWM вы и 18 других зрителей во время этого комментария =) – MonkeyZeus
Если вы не можете войти в систему, то я думаю, что это действительно безопасно. –