Простое двустороннее шифрование, которое выводит длинную буквенно-цифровую строку - PullRequest
1 голос
/ 13 января 2012

По сути, я пишу электронные письма, которые отправляются, когда человек регистрируется на моем веб-сайте, и у него будет ссылка для активации, которой должна быть назначена строка для переменной GET.

Когда человекщелкнув ссылку, они будут перенаправлены на страницу сайта, где строка будет расшифрована и сопоставлена ​​с чем-то уникальным для них в базе данных.Затем он активирует их учетную запись.

Я делаю это в CakePHP, поэтому, если есть какая-либо встроенная функция, это будет предпочтительнее.

Я перепробовал множество вариантов, и большинстволибо они очень короткие, очень странные, либо содержат символы, которые могут испортить переменную GET.

Мне нужно, чтобы вывод был предпочтительно около 20 символов, только буквы и цифры.

1 Ответ

3 голосов
/ 13 января 2012

Просто используйте случайную уникальную строку. Нет необходимости шифровать или дешифровать его, он должен быть уникальным, длинным и случайным. Это просто известно как непрозрачный токен. Это не имеет никакого значения, это просто нечто уникальное, что должен иметь только один пользователь. UUID отлично подходят.

do {
    $token = str_replace('-', '', String::uuid());
} while (!$this->User->isUnique(array('token' => $token)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...