Loading...
Обучение/Помощь новичкам | Два одинаковых хэша
invoker , попробую скрутить , спасибо более менее что-то
TheAlex [!] (15 авг 2023, в 13:30)
Я не читал в интернете. Ты слишком агрессивный, причём, как правило, пользы от твоих высеров нет. Человек спросил возможно это или нет. Я ответил, что возможно. Будет у него на практике так - без понятия, меня это не сильно волнует. Учись отвечать на вопросы по существу, а не агрить на всё подряд. Однако, если ты работаешь с мелкопроектами и для тебя вариант "и так сойдёт, а может прокатит" вполне норм, то, думаю, не стоит раздавать советы другим.
Высока тут на форуме, только от тебя
Никакой конкретики и пользы , что в очередноц раз и следовало ожидать
Ну в целом совпадение возможно, шанс маленький, тут можно либо генерировать новый хеш если критикал, либо игнорировать это.
Можно вместо хеша использовать uuid в твоем случае в нем шанс коллизии меньше так как оно идет в основном для генерации айдишек , но лишней проверки коллизии не бывает в случае критикал
invoker (15 авг 2023, в 15:22)
Рекурсия в помощь. Если найдется совпадение, то просто пересоздай хэш. Что то типа того
php
   function generateHash() {     return сгенерируемый хэш; }  function getHash() {     $hash = generateHash();     if (проверка, если хэш есть в базе) {         return getHash();     }      return $hash; }   
Решил не много сократить но обломался )) return getHash(); заменить на return crypt($key, '$2y$10$'.substr($key, 0, 22)); или будет жопа ?
php
   function existHash($key = null) { $hash = crypt($key, '$2y$10$'.substr($key, 0, 22));      if(проверка, если хэш есть в базе)      return getHash();        return $hash;  }   
Scammer , uuid мне кажется схож будет с uniqid(mt_rand, true)?
SNEG (15 авг 2023, в 17:57)
Решил не много сократить но обломался )) return getHash(); заменить на return crypt($key, '$2y$10$'.substr($key, 0, 22)); или будет жопа ?
php
   function existHash($key = null) { $hash = crypt($key, '$2y$10$'.substr($key, 0, 22));      if(проверка, если хэш есть в базе)      return getHash();        return $hash;  }   
Жопы не будет. Но зачем генерировать два раза хэш? + получится дубль кода
SNEG (15 авг 2023, в 17:59)
Scammer , uuid мне кажется схож будет с uniqid(mt_rand, true)?
не совсем, там стандартизирована выдача
invoker , от чего убегал к тому и вернулся *055* , ещё раз попробую )
SNEG (15 авг 2023, в 18:07)
invoker , от чего убегал к тому и вернулся *055* , ещё раз попробую )
Только в return не забудь переписать на
return existHash($key)
________
посл. ред. 15.08.2023 в 18:13; всего 1 раз(а); by invoker
invoker ,
php
   function existHash($key = null)  {  do {  $hash = crypt($key, '$2y$10$'.substr($key, 0, 22));  $zz = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(`key`) FROM `".PREFIX."_sessions` WHERE `key` = '".$hash."'"));  } while($zz['key'] !== 0);    return $hash; }   

________
посл. ред. 15.08.2023 в 18:24; всего 2 раз(а); by SNEG
Онлайн: 3
Время:
Gen. 0.1183
(c) Bym.Guru 2010-2026