Является случайной строкой хороший код подтверждения

StackOverflow https://stackoverflow.com/questions/3673574

Вопрос

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

Мой вопрос: если бы я собирался генерировать этот код со сложной формулой, такой как это:

md5(md5(time().'helloguys'.rand(0,9999)));

Это действительно лучше, чем генерировать только случайную строку из 32 символов и цифр, как gj3dI3OGwo5Enf...?

Это было полезно?

Решение

Нет, использование хеша не лучше. Это было бы более безопасно (менее предсказуемым), чтобы выбрать 32 случайных символа. (Цифры - это символы.) Используйте хороший («криптографический») генератор случайных чисел, с хорошим семенем (некоторые байты от / dev / rende). Не используйте время как семена.

Другие советы

Согласен с erickson, просто посоветую вам использовать

pwgen -1 -s

Команда на * NIX, которая будет работать Music лучше любой процедуры, которую вы можете изобрести.

Если вы хотите создать некоторую строку программно, вы можете взглянуть на

<?php    
$better_token = md5(uniqid(rand(),1));
?>

Это дает очень хороший уровень случайности и до столкновений.

Если вам нужен еще более высокий уровень безопасности, вы можете подумать о генерации случайных последовательностей на http://www.random.org/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top