Обучение/Помощь новичкам | Два одинаковых хэша
Тема закрыта by
SNEG
Я не читал в интернете. Ты слишком агрессивный, причём, как правило, пользы от твоих высеров нет. Человек спросил возможно это или нет. Я ответил, что возможно. Будет у него на практике так - без понятия, меня это не сильно волнует. Учись отвечать на вопросы по существу, а не агрить на всё подряд. Однако, если ты работаешь с мелкопроектами и для тебя вариант "и так сойдёт, а может прокатит" вполне норм, то, думаю, не стоит раздавать советы другим.
Никакой конкретики и пользы , что в очередноц раз и следовало ожидать
Ну в целом совпадение возможно, шанс маленький, тут можно либо генерировать новый хеш если критикал, либо игнорировать это.
Можно вместо хеша использовать uuid в твоем случае в нем шанс коллизии меньше так как оно идет в основном для генерации айдишек , но лишней проверки коллизии не бывает в случае критикал
Можно вместо хеша использовать uuid в твоем случае в нем шанс коллизии меньше так как оно идет в основном для генерации айдишек , но лишней проверки коллизии не бывает в случае критикал
Рекурсия в помощь. Если найдется совпадение, то просто пересоздай хэш.
Что то типа того
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;
}Решил не много сократить но обломался ))
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