Основой является сохранение как минимум двух данных в файле cookie для идентификации пользователя:
- Что-то, говорящее вам, кто это (обычно идентификатор пользователя)
- Что-то говорит вам, что это действительно этот пользователь (тип вызова против идентификатора пользователя)
Давайте создадим хеш пользователя для идентификатора пользователя John # 42.
Логин Джона - "john_demo"
На вашем сайте будет секретная соль, просто случайная строка, предотвращающая подделку хеша.
<?php
$login = "john_demo";
$id = 42;
$salt = "ùoajamen!k);p67!è§çRIUV";
$hash = sha1(sha1("$id:$login:$salt").$salt);
$cookie_value = base64_encode($id.':'.$hash);
Хеш засоляется два раза подряд (два вызова sha1).
Вы можете легко получить информацию о пользователе, расшифровав cookie-файл с помощью base64, извлекая идентификатор, а затем проверив по значениям db (и восстановив «официальный» хеш), что ваш cookie-файл действителен.