Создание случайно сгенерированного, безопасного токена и хранение в базе данных - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь создать уникальный токен для каждого пользователя на моем сайте.Маркер генерируется, когда пользователь регистрируется, и в идеале должен быть максимально безопасным.Каков наилучший способ сделать так, чтобы я мог отображать токен пользователю?

Этот токен НЕ является паролем, и пользователь не собирается создавать его самостоятельно.Если я хэш и солью его при регистрации, я не смогу получить его, очевидно, потому что он хешируется и солится.Мне нужен простой способ сделать это через PHP, и я смогу легко отобразить его пользователю.

Ответы [ 4 ]

1 голос
/ 21 июля 2011

А как же:

md5(uniqid('', true))
0 голосов
/ 21 июля 2011

Как пользователь будет использовать этот токен?

Реальный вопрос в том, что вы подразумеваете под безопасностью. Я предполагаю, что вы имеете в виду «неузнаваемый», что означает, что он должен быть длинным и / или сложным.

Однако это проблема, если пользователю нужно запомнить это.

Таким образом, реальная проблема заключается в том, как трудно вы хотите, чтобы это угадывалось, и как легко вы хотите, чтобы это вызывали?

0 голосов
/ 21 июля 2011

не ухудшать комментарий zerkms. но я бы порекомендовал crypt ().

что делает не хэшированное значение для пользователя?

0 голосов
/ 21 июля 2011

Хэши являются односторонними, поэтому единственный способ отменить хеш - сохранить исходное значение, сделав хеш избыточным.

Если вам нужно отобразить значение только один раз, сохраните значение в переменнойраспечатайте его на странице и не сохраняйте, это безопасно для вас.

Другой вариант - просто использовать шифрование базы данных для хранения токена, а затем расшифровать перед отображением для пользователя.Предполагая, что вы используете MySQL, вы можете найти эту справку: MySQL Encryption

...