Построить одинаковый хеш от двух известных строк

Тема в разделе "WASM.CRYPTO", создана пользователем Rel, 2 дек 2019.

  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    есть две заранее известные строки, нужно сделать алгоритм хеширования (не обязательно крипто-стойкого) таким образом, чтобы хеш-значения обоих строк были равны... есть ли что-то, что может для меня такое сделать? знаю, что есть алгоритмы perfect hashing, которые решают обратную проблему, то есть генерируют такой алгоритм, что для каждой входной строки хеш-значения разные, но есть ли что-то в нужную мне сторону?
     
  2. q2e74

    q2e74 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2018
    Сообщения:
    988
    любой помехоустойчивый код взять и развернуть в противоположную сторону. Типа слово+ошибка через кодер -> заранее известные строки. заранее известные строки в декодер, на выходе первое слово, оно же хэш-значение.
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.954
    Посчитай сумму обеих строк и подбери перебором несколько действий: сложение/вычитание/хор с константами так, чтоб результат совпал. Буквально вчера делал что-то похожее: есть алгоритм, который по-всякому в разном порядке применяет 3 байта ключа к одному байту, нужно было найти все способы, которыми из одного байта можно получить второй, используя только константы ключа по одному разу. Пусть младшие 3 бита счетчика будут кодировать первую операцию, еще три вторую и так далее, запрещенные состояния отсеиваешь, просто в цикле накручиваешь и проверяешь совпало ли.
     
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Rel
    На правах оффтопа и праздного интереса: а можно какие-нибудь подробности практического применения такого "хеша"? Если исходить от определения понятия "хеш-функция" как преобразования массива переменной длины в массив длины постоянной и названных Вами условий работы этой фукнции, то получается что int hash (...) {return 0xDEADBEEF;} вполне подходит :) Может есть ещё какие-то неочевидные характеристики входных данных? Именно 2 строки, для других пар строк результат неважен? Или Вам просто нужна хеш-функция с прогнозируемой коллизией?
     
  5. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.954
    RamMerLabs, скорей всего запасной пароль хочет иметь.
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.242
    это секрет))...
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.077
    можно строки разбить на подстроки и для каждой пары подстрок сгенерить полином == полином есмь хэш. Да, не криптостойкое решение:crazy::laugh1::laugh2::laugh3:
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.077
    могу предположить, что речь идёт не столько о хешах, сколько об ид. :)