Хэш или нет?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Хэш или нет?

Re: Хэш или нет?

Сионист » 20 авг 2015, 11:00

Например, при исходных строках: "1234", "4321", "3456" и "6543" результат будет один и тот же, коды символов результата будут 5 1 1 5.

Re: Хэш или нет?

Сионист » 20 авг 2015, 10:57

Пример кода с колизиями, но не хеша:

Код: Выделить всё

char *p;
size_t i;
for (p=s; *p!=0; ++p);
for (--p, i=0; *s!=0; ++s, --p, ++r, ++i)
{
 *r=*s;
 *r^=*p;
}
*r=0;
. Результат имеет ту же длину, что и исходная строка, но понять, какая именно строка была исходной, не возможно, так как часть информации из неё теряется.

Re: Хэш или нет?

Сионист » 20 авг 2015, 10:27

Но именно это - не хеш по какому то одному алгоритму, пусть даже и составному, так как длина первого примера 64 символа, а второго и третьего - не 64, а 65 символов. Хеш же по определению имеет не только коллизии, но и постоянную длину, ни как не зависящую от исходных данных. Возможно это какой то другой код с коллизиями. Но не хеш по какому то одному алгоритму. Если это всё таки хеши, то они имеют разное назначение и получены по как минимум двум разным алгоритмам. И ломать их как один набор нельзя. Два последних примера могут быть хешами из одного набора, но первый явно из другого.

Re: Хэш или нет?

Сионист » 20 авг 2015, 10:17

AkRomiresS писал(а):А существуют ли алгоритмы с хэшем длиной 64 символа и набором символов [a-zA-Z0-9~._-] ?
Хеш может быть любой постоянной длины, хоть на пару десятков гибибайт. И даже если на какую нибудь длину нет стандартной криптограической хеш-функции, можно ведь и конкатенировать два разных хеша одного пароля, в результате снова получится хеш, но суммарной длины, или же написать свою хеш-функцию с ноля, причём, не обязательно даже криптографическую. А для того, чтоб конкатенируемые хеши не совпадали, можно использовать или хеш-фукнции, реализующие разные алгоритмы, или две разные "соли", и сразу и два алгоритма, и две "соли". Будет ли взлом конкатенации хешей сложней, чем каждого из хешей в отдельности - это вопрос отдельный, но сделать так можно и получится снова хеш.

Re: Хэш или нет?

AkRomiresS » 30 июл 2015, 16:45

нужен HEX-based хеш длиной 384 бита
Спасибо, подумаю в этом направлении.

Re: Хэш или нет?

somewhere » 30 июл 2015, 16:22

Не знаю насчет множества символов - то это в основном HEX, но если каждую пару HEX рассматривать как код символа, то вполне может получится такой хеш. 64 символа имеют SHA256, EDON-R256, Snefru256, HAVAL256, RIPEMD256 и т.д., но я чувствую тут нужен HEX-based хеш длиной 384 бита (6 бит на символ * 64 символа)

Re: Хэш или нет?

AkRomiresS » 30 июл 2015, 16:06

Достоверного ответа не существует.
А существуют ли алгоритмы с хэшем длиной 64 символа и набором символов [a-zA-Z0-9~._-] ?

Re: Хэш или нет?

somewhere » 30 июл 2015, 16:00

Как можно определить хэш это или просто строка?
Достоверного ответа не существует. Кто знает, у кого что на уме. Достаточно по-XOR-ить обычный BASE64 или MD5 и уже нельзя будет определить его тип.

Хэш или нет?

AkRomiresS » 29 июл 2015, 23:47

Доброго времени суток.

Помогите, пожалуйста, разобраться.

Есть несколько строк, не могу понять, хэш это или просто произвольные наборы символов.
Длина 64 символа, присутствуют латинские буквы в верхнем и нижнем регистре, цифры, из символов присутствуют "~", ".", "-", "_"

Примеры:
1. T~TVA5MCB~hcmpTulimpvOhmbjJivrwX2vaR941w-UCkBNeapcULs0a.4TnN74Dp
2. ~aybNLEzDy64At9qrPLMfuikz.6J6gib40nAHirvdt8RsyovC1Lxyn8vKnDctEG0
3. pDs7_uVNcfiwYeudJAQHJzcLPALOdMYiQGSCdLc0mtaEySCxQKhppfMqy8zKHZVF

Как можно определить хэш это или просто строка? Если хэш, то что за алгоритм?

Спасибо.

Вернуться к началу