Одним из способов было бы создание хэша MD5 информации о пользователе, предоставленной для использования в качестве пароля.
$name = "sushil bharwani";
$email = "[email protected]";
$pass = md5($name . $email);
Что бы получить вам строку, таких как 1f3870be274f6c49b3e31a0c6728957f
. Поскольку функция MD5 всегда будет создавать один и тот же вывод с данного входа, теоретически возможно, что кто-то, кто знал вас, регистрировался, какие поля были необходимы и что вы, скорее всего, вложили бы в них, могли бы догадаться о хеше MD5, который был бы отправил вам. Это можно было бы смягчить, добавив случайное число на вход до md5
, но, если вы не работаете в тайном правительственном агентстве, вряд ли кто-то будет заботиться об этом, чтобы все равно попытаться это сделать.
Если вы хотите быть более безопасным, вы можете создать пару открытого и закрытого ключей, сохранив общедоступную в своей базе данных и отправив личную в электронном письме. Частный ключ нельзя угадать, кроме грубой силы, поэтому в этом отношении он будет более безопасным. Но поскольку вы отправляете его по электронной почте, что совершенно небезопасно, вряд ли это будет очень большим усилением безопасности.
Также имейте в виду, что любой способ генерации пароля будет генерировать нечто гораздо более сложное, чтобы догадаться, что сами пользователи будут выбирать для паролей, поэтому слишком беспокоиться об этом - это, вероятно, пустая трата энергии.
Что касается временного части, просто использовать метку времени для записи при создании пароля и использовать cronjob, чтобы удалить все старше x
дней, которые не были изменены.
Спасибо за ваш ответ. Я хочу знать риски с помощью способа md5 генерации временных паролей для пользователя. И можете ли вы предложить больше способов. Мне нравится ваш ответ. –
При создании хэша вы всегда должны использовать уникальную соль md5 ($ salt.$ Имя $ электронная почта). , Более того, я прочитал шифрование sha1 лучше, так как в огромной базе данных хеширование md5 оказалось не уникальным. – Rishabh
Никогда не отправляйте ничего по электронной почте. Когда-либо. –