Лучший подход к хранению паролей, запоминающих пароли, - это сохранение в виде хэшей md5 вместе с некоторыми данными, специфичными для браузера.Например, вы храните такую строку, как
username-4155b1b6e53ad73e06c4c58e709cdeea19915ea84de517500d9ba3280e27cf59
Например, вы можете сгенерировать эту строку в PHP следующим образом:
$string=$username.'-'.md5(substr($http_user_agent, 5, 10)) .md5($password).md5(substr($http_user_agent, 0, 10));
Наша цель - сделать нашу строку достаточно сложной.На этапе входа в систему мы извлекаем пароль md5 с помощью метода, который нам известен.
$somearray=explode('-', $string);
$username=$somearray[0];
$passwordmd5=str_replace(md5(substr($http_user_agent, 0, 10)),'',str_replace(md5(substr($http_user_agent, 5, 10)),'', $string));
, и теперь мы можем выполнить сравнение в нашей базе данных следующим образом:
select * from users where username='$username' and md5(password)='$passwordmd5';
HTTPАГЕНТЫ ПОЛЬЗОВАТЕЛЯ немного исключают риск несанкционированного использования строки cookie.Хотя неавторизованный человек украл куки, он не может использовать его с другим браузером.Если бы мы этого не сделали, кто-то с такой же строкой мог бы вести себя так, как если бы он имел пароль, и мог войти в систему как наш реальный пользователь.