Для моего сценария автологина я думал о реализации следующего:
- пользователь получает какой-то личный «открытый ключ», который хранится в cookie-файле
- потому что я не хочу сохранять тот же ключ в моей базе данных, я хочу создать соответствующий "закрытый ключ"
- при обнаружении cookie-файла извлекается ключ, хранящийся в базе данных, и проверяется отношение между публичным и частным доступом между двумя ключами
Каков наилучший способ реализовать это в php без openSSL и т. Д.
Вот что у меня сейчас:
$public = hash($hash_algorithm, uniqid(rand()));
$private = hash_hmac($hash_algorithm, $public, $encryption_key);
И для проверки:
$check = hash_hmac($hash_algorithm, $public, $encryption_key);
return $check == $private;
$ encryption_key - это случайный ключ из файла конфигурации.
Я думаю об этом слишком просто или это достаточно хорошо? Конечно, когда ключ используется, генерируется новый, как принцип здесь: http://jaspan.com/improved_persistent_login_cookie_best_practice