Является случайной строкой хороший код подтверждения
-
01-10-2019 - |
Вопрос
Я генерирую код подтверждения, который будет использоваться для активации учетной записи. Вы, наверное, видели эту вещь раньше.
Мой вопрос: если бы я собирался генерировать этот код со сложной формулой, такой как это:
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/