Является ли случайная строка хорошим кодом подтверждения? - PullRequest
7 голосов
/ 09 сентября 2010

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

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

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

Разве это действительно лучше, чем генерация случайной строки из 32 символов и чисел, подобных gj3dI3OGwo5Enf...

Ответы [ 2 ]

6 голосов
/ 09 сентября 2010

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

1 голос
/ 09 сентября 2010

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

pwgen -1 -s

команда для * nix, которая будет намного лучше любой процедуры, которую вы можете придумать.

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...