Loading...
Обучение/Помощь новичкам | Два одинаковых хэша
Могут быть два одинаковых хэша если использовать time()
$str = bin2hex(random_bytes(11)).time();
$str_hash = sha256($str);
________
посл. ред. 26.07.2023 в 05:51; всего 2 раз(а); by SNEG
Чисто теоретически возможно повторение)
Но с random_bytes вероятность одна на миллионы

Для таких целей лучше использовать unicid там используется время в микросекундах и повторений не случится
________
посл. ред. 26.07.2023 в 06:48; всего 1 раз(а); by ddarder
SNEG , пробуй так .smoke_sm.
php
   <?php function generateUniqueHash($length = 16) {     // Генерируем случайную строку с более высокой энтропией с помощью random_bytes     $random_string = bin2hex(random_bytes($length));      // Генерируем случайную метку времени с помощью random_int     $timestamp = random_int(0, time());      // Объединяем случайную строку и метку времени     $str = $random_string . $timestamp;      // Получаем хеш для объединенной строки с использованием алгоритма SHA-256 (или другого выбранного алгоритма)     $str_hash = hash('sha256', $str);      return $str_hash; }  // Пример использования: $hash = generateUniqueHash(16); echo "Сгенерированный хеш: $hash"; ?>   
ddarder (26 июля 2023, в 6:45)
Чисто теоретически возможно повторение)
Но с random_bytes вероятность одна на миллионы

Для таких целей лучше использовать unicid там используется время в микросекундах и повторений не случится
$test = uniqid('', true);
echo md5($test);
С таким вариком 2 одинаковых не может быть ?
?
________
посл. ред. 26.07.2023 в 17:43; всего 7 раз(а); by SNEG
SNEG (26 июля 2023, в 13:40)
$test = uniqid('', true);
echo md5($test);
С таким вариком 2 одинаковых не может быть ?
?
у тебя вопрос о хеше, а не об уникальном идентификаторе uniqid() в данном вопросе неуместна p.s. хотя я лично использую uniqid() для авторизации но в паре с айдишником пользуна
php
   // регистрация (авторизация) $user = new User(); $user->token = uniqid(); $user->save();  $_SESSION['auth'] = [$user->id, $user->token];  // контроль авторизованного if (isset($_SESSION['auth'])) {     if ($user = User::findOneBy('`id` = ? && `token` = ?', $_SESSION['auth'])) {         return $user;     }      unset($_SESSION['auth']);      // return false; }  // return false;   

________
посл. ред. 26.07.2023 в 18:48; всего 5 раз(а); by Вилы Выкидные
Онлайн: 2
Время:
Gen. 0.1103
(c) Bym.Guru 2010-2026