Мне нужно создать систему активации для веб-сайта. Пользователь регистрируется, получает электронное письмо, затем щелкает ссылку с секретным ключом в строке запроса, и скрипт с моей стороны расшифровывает его.
Мой вопрос не в самом программировании, а в том, как правильно создать ссылку? Хеширование было мыслью, но это один из способов. Должен ли я что-то шифровать? Кто-нибудь, кто был поставлен перед этой же задачей, имеет какое-либо представление?
Есть ли способ сделать это, чтобы оба: не хранили секретный код в базе данных, не помещали очевидную информацию о пользователе в строку запроса
Пользователь находится в таблице с идентификатором первичного ключа и другой информацией. Он не должен быть безумно безопасным, но и не должен быть легко ломаемым. Я делаю это с помощью php. Я не мог найти подобный вопрос, поэтому, если я пропустил один, я был бы признателен за ссылку.
uniqid()
, которая делает что-то подобное. С другой стороны, MySQL имеет функцию с именемUUID()
. Лично , я бы использовал функцию MySQL, чтобы создатьUUID()
, присвоить ее записи, а затем использовать ее для отправки в качестве идентификатора активации.С другой стороны, с точки зрения скорости гораздо эффективнее использоватьuniqid()
PHP, поскольку он короче и индексирует это будет более эффективно. - person N.B.   schedule 21.10.2013base64_encode
для шифрования идентификатора. Другая идея состоит в том, чтобы иметь дополнительный столбец (или таблицу, сопоставленную с записями) и использовать глобально уникальные идентификаторы, которые вы отправляете по электронной почте. - person N.B.   schedule 21.10.2013