Ответы пользователя по тегу Хеширование
  • Какие коллизии хеша со смысловым вхождением известны на сегодня?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Произведение пронумерованных простыми числами позиций уникальных используемых букв алфавита в любом тексте всегда даст одинаковый хеш.
    А смысл?!
    Ответ написан
    Комментировать
  • Какой алгоритм хеширования использовать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Нужно решать проблему поиска, а не создания хеша.
    Добавьте признаки к товару и ищите по ним.
    Как вариант признака от названия (таблица идентификаторов признаков): "содержит только одну А", "содержит только одну Б",.. и т.д.
    И сначала делать выборку по признаку - фильтровать, а в полученных записях - уже искать по полному имени.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю хеширование?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Хэш - это сюръекция, если он имеет коллизии, и обычно - это так, но не всегда.
    Хеш обратим в свою любую коллизию (набор данных, дающих тот же результат хеширования).
    Иначе - хэш биективен.

    Также, хеш может быть универсален.

    Частые (но не все, разумеется!) варианты использования:
    1. Проверка целостности файлов: обычно указывают контрольные суммы. Это и есть хеш содержимого файлов.
    2. Применение для валидации доступа или подписи запросов: применяют хеширование с коллизиями для определённого набора данных и затем сравнивают этот хеш с результатом расчёта для этого же набора данных на другом узле.
    В этот момент, данные формирующие хеш, передаются частично (либо не передаются вовсе, а передаётся только сам хеш). При получении одиночного хеша или хеша с неполным набором данных, происходит формирование (расчёт) своего (контрольного) хеша по известному выражению на основе исходных данных, и затем выносится вердикт: совпадают с принятый и контрольный хеши или нет.
    Ответ написан
    Комментировать
  • Как переобразовать hashCode обратно в строку?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Можно преобразовать обратно в коллизионную строку (или строки, если их несколько).
    Колизионная будет равна исходной только в случае, если данный хеш не имеет коллизий: это зависит от алгоритма и исходной (хешируемой) строки.
    И корреляция последовательных этапов обратного хеширования - задача не простая.
    Ответ написан
    Комментировать
  • Как узнать систему хэширования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Никак. Просто смиритесь.
    Хеш - на то и хеш, чтобы формулу никак нельзя было получить.
    Ответ написан
    Комментировать
  • Как часто менять hash при аутентификации в php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Токен авторизации клиента - должен храниться на клиенте (в куках).
    2. Срок жизни токена авторизации клиента - 3-5 дней.
    3. Смена/обновление токена авторизации клиента - "прозрачная"для конечного пользователя.
    (Это всё было только о конкретном веб-браузере без привязки к аккаунту пользователя.)

    А токен авторизации пользователя (после ввода логина и пароля) - выдаётся только после успешной авторизации клиента.

    Для успешной авторизации проверяется, что браузер(клиент) - авторизованный, и пользовательские логин с паролем - верные.
    Ответ написан
  • Есть ли смысл, в такой шифровке?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В примере, достаточно: hash('sha256', $password);
    А правильно, лучше использовать "соль": hash('sha256', $salt.$password.$salt);
    Ответ написан
    Комментировать
  • Как генерировать хэш в fingerprint2?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вы вообще ни тем занимаетесь!
    Чтобы предотвращать headless кравлеры, нужно использовать поведенческий фильтр и правила на серверной стороне.
    FP2 нужен для идентификации тонкого клиента (браузера) при создании токена доступа/авторизации. Если токен украдут из куков, то на другом клиенте отпечаток будет уже иным и с этим токеном зайти не получится.

    Поясню на "пальцах": переназначаю(/заменяю/удаляю) в headless ваши js-функции на свои (через внедрение локального скрипта сразу после загрузки страницы) и весь Ваш труд - напрасен.
    Ответ написан
  • Возможно ли 'взломать' хеш брутфорсом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    значит в конечном итоге смогу сжать 10-ки, 100-ни, 1000-чи и тд терабайт данных в одну 64-символьную строку.
    почти верно... Только вы перепутали всё в голове...
    Это называется уплотнение данных (алгоритм схож, но работает чуть иначе), но плотность распределения - вас остановит раньше, чем вы дойдёте до 64-символьной строки.

    потом в обратном направлении 'распаковываю' хеш из '618281' в 'abcdef1'
    Только в случае, если хеш является уплотнением. Иначе - нет.

    Прямой ответ на Ваш вопрос: чтобы что-то целое передать в минимальном объёме, нужно чтобы этот минимальный объём с наибольшей процентной вероятностью соответствовал передаваемым данным.
    А это означает, что нужна обученнная нейронка с базой объектов (у отправителя и получателя, или централизованная) для их извлечения после нахождения наибольшей степени вероятности.
    Ответ написан
    Комментировать
  • Как прочитать этот хеш? И что это за хеш?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вы не сможете с ним ничего сделать.
    Хеш - не хранит исходную информацию.
    Ответ написан
  • Как получить хеш сумму массива?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Сравните 2 переменных, содержащих старое и новое значение массива.
    Для этого ничего не нужно сериализовывать и хэшировать - только лишнюю нагрузку сделаете.
    2. Можно сделать бинарную маску: сумму битов 1+2+4+8+16+32 и т.д. для получения идентификатора сразу для нескольких изменённых переменных массива.
    Ответ написан
  • Как расшифровать пароль, зная соль и метод шифрования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Как расшифровать пароль, зная соль и метод шифрования?
    return md5('соль'.md5('соль'.$p1.'соль').md5('соль'.$p2.'соль'));
    Возможно вы имели ввиду: "Как расшифровать пароль, зная соль и метод хеширования?"
    Ответ: никак.

    Единственный вариант: захватить пароль при проверке ДО его хеширования (для проверки с этим хешем по приведённой вами формуле) и, если он верный, - добавить "на лету" рядом запись в БД с ШИФРОВАННЫМ паролем.
    Ответ написан
    Комментировать
  • Как сделать кластеризацию на основе хэширования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Пусть бинарные последовательности - это предложения.
    А набор характеристик в них - это слова.
    Пусть разделитель - символ пробела.
    Тогда используя этот алгоритм Как определить похожесть двух строк?
    мы можем выбрать нужные нам записи с наименьшими затратами на производительность.
    Ответ написан
    Комментировать
  • Какой из этих алгоритмов наиболее безопасен?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Комментировать