Я использую библиотеку аутентификации Адама Гриффитса для CodeIgniter и настраиваю пользовательскую модель.
Я наткнулся на функцию генерации, которую он использует для генерации токенов.
Его предпочтительный подход - ссылаться на значение из random.org, но я счел это излишним. Я использую его альтернативный метод случайного генерирования строки длиной 20 символов:
$length = 20;
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$token = '';
for ($i = 0; $i < $length; $i++) {
$token .= $characters[mt_rand(0, strlen($characters)-1)];
}
Затем он хэширует этот токен, используя соль (я прочесываю код из разных функций)
sha1($this->CI->config->item('encryption_key').$str);
Мне было интересно, есть ли какая-либо причина для запуска токена через соленый хеш?
Я читал, что просто случайное генерирование строк было наивным способом создания случайных паролей, но нужен ли sh1 хеш и соль?
Примечание: я получил мой encryption_key от https://www.grc.com/passwords.htm (63 случайных буквенно-цифровых)