Обучение/Помощь новичкам | Два одинаковых хэша
Тема закрыта by
SNEG
Я не читал в интернете. Ты слишком агрессивный, причём, как правило, пользы от твоих высеров нет. Человек спросил возможно это или нет. Я ответил, что возможно. Будет у него на практике так - без понятия, меня это не сильно волнует. Учись отвечать на вопросы по существу, а не агрить на всё подряд. Однако, если ты работаешь с мелкопроектами и для тебя вариант "и так сойдёт, а может прокатит" вполне норм, то, думаю, не стоит раздавать советы другим.
Никакой конкретики и пользы , что в очередноц раз и следовало ожидать
Ну в целом совпадение возможно, шанс маленький, тут можно либо генерировать новый хеш если критикал, либо игнорировать это.
Можно вместо хеша использовать uuid в твоем случае в нем шанс коллизии меньше так как оно идет в основном для генерации айдишек , но лишней проверки коллизии не бывает в случае критикал
Можно вместо хеша использовать uuid в твоем случае в нем шанс коллизии меньше так как оно идет в основном для генерации айдишек , но лишней проверки коллизии не бывает в случае критикал
Рекурсия в помощь. Если найдется совпадение, то просто пересоздай хэш. Что то типа того
php
function generateHash() { return сгенерируемый хэш; } function getHash() { $hash = generateHash(); if (проверка, если хэш есть в базе) { return getHash(); } return $hash; } php
function existHash($key = null) { $hash = crypt($key, '$2y$10$'.substr($key, 0, 22)); 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; }
не совсем, там стандартизирована выдача
, ещё раз попробую )
Только в return не забудь переписать на
return existHash($key)
________
посл. ред. 15.08.2023 в 18:13; всего 1 раз(а); by invoker
return existHash($key)
________
посл. ред. 15.08.2023 в 18:13; всего 1 раз(а); by 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