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
Онлайн: 2
Время:
Gen. 0.1265
(c) Bym.Guru 2010-2025