Что называется хешированием?

Поділитися
Вставка
  • Опубліковано 2 лис 2024

КОМЕНТАРІ • 56

  • @ГеоргииЦедров
    @ГеоргииЦедров 9 років тому +63

    Вы очень хорошо объясняете , вы не думали записать видео уроки по языкам программирования и их практическом применении ,мне кажется это будет очень полезно. P.s. Думаю я не один такого мнения. Кто считает также лайк.

  • @extrud96
    @extrud96 8 років тому +1

    Спасибо. Программированием занимаюсь уже несколько лет, и теперь в полной мере раскрыл для себя понятие Хеширования.

  • @Diadema566
    @Diadema566 2 роки тому +1

    Спасибо! Шикарное объяснение.

  • @lastfornit
    @lastfornit 3 роки тому +1

    Все видео про хеширование в один плей-лист бы собрать. А так спасибо, доступно.

  • @yevgenkomissarov6992
    @yevgenkomissarov6992 3 роки тому

    жаль, что нельзя поставить несколько лайков за столь понятное объяснение!

  • @saimonshaplygin7867
    @saimonshaplygin7867 4 роки тому +2

    Володя, спасибо большое за твой труд и за то что ты не оставляешь свой проект.
    Изначально нужно различать криптографический hash и обычный hash функции. Из-за этого к каждому типу функции накладываются свои требования. На счет параллельных вычислений ты не совсем прав. В некоторых криптографических шифрах как подэтап используют паралельные вычисления. К сожалению, с ходу я не помню конкретный алгоритм.

  • @mozgotron12
    @mozgotron12 7 років тому +1

    Спасибо, Володя. Особенно за предостережение от создания тайности алгоритма хеширования. Видимо тайность алгоритма ни к чему из-за необратимости восстановления исходных данных по хешу.

  • @dimitrishat8659
    @dimitrishat8659 8 років тому +12

    Лайк за бороду ))

  • @9BaroN6
    @9BaroN6 5 років тому +2

    Блин какой же ты крутой. Подписался. Спасибо за видео и твой труд! 👍

  • @it2ishmitov76
    @it2ishmitov76 4 роки тому

    Прекрасный рассказчик, однозначно подписка) Спасибо Вам.

  • @latecomedytranslate7577
    @latecomedytranslate7577 8 років тому +1

    Хороший канал, благодарю за вашу работу

  • @MMEEEish
    @MMEEEish 9 років тому +11

    Володя, ты рассказал про криптографическии хеш функции.
    Если нам нужна функция для ключа в hash map, то необратимость, случайное распределение и алгоритмическая последовательность нам не нужны.

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +11

      MMEEEish Замечательный комментарий!!!Дело в том, что шехмап очень часто используется для хранения данных пользователя в уникальных полях для быстрого доступа по хешу. Теперь давайте представим себе ситуацию, что эта функция обратима, и мы создаём сайт загрузки своей музыки. Значит вы записали песню, и выложили её на этот сайт. Она спокойно скачивается, и давайте представим себе что ссылка у вас на сайте в формате /index.php?hash=asdfsfsf то есть хеш известен всем. И вдруг вы мне перешли дорогу, я беру и обращаю эту функцию и создаю файл с таким-же хешем, как у вас, и загружаю его на этот сайт. Этим образом я выталкиваю вашу песню из хешмапа (так как я смог создать данные с одинаковым хешем).Так что необратимость вам нужна.Вам также нужны остальные, так как если не будет случайного распределения, то я просто начну генерировать файлы, и менять по 1 биту, и наблюдать приближается-ли мой хеш к вашему или нет. Если приближается, то это изменение бит я оставляю, если нет, то пробую менять другой. Алгоритмическая последовательность в этом конкретном примере не совсем важна. Но тут уже вопрос в том, что лучше создать алгоритм, который подходит и для пароллей и для хеширования данных, таким образом большее количество людей будут пытаться в нём разобраться, чтобы возможно найти проблему.

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +2

      Vladimir Mozhenkov Вот почему гугл мои параграфы слил в один?

    • @MMEEEish
      @MMEEEish 9 років тому

      Vladimir Mozhenkov
      это примеры коллизии.

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +4

      MMEEEish Прочтите, что я написал. Коллизия, это когда случайным образом данные получают один хеш. А я описывал процесс генерации данных с данным хешем. Это уже не просто коллизия.

    • @PROger4ever
      @PROger4ever 9 років тому +2

      Vladimir Mozhenkov Если речь идёт о таких классах, как Dictionary, HashSet, HashTable (C#), то проблема коллизий и генерации данных под определённый хеш давно успешно решена. При добавлении элемента вычисляется его хеш и ищется в таблице всех хешей. Если такой хеш найден, то происходит сравнение самих объектов (метод isEquals()/Equals(), который фактически сравнивает побайтово все значимые поля класса). Если хеш совпал, а сами объекты [побайтово] нет, то добавляется новая запись в таблицу С ТЕМ ЖЕ ХЕШЕМ и ссылкой на другой экземпляр класса.
      При поиске выбираются все строки с переданным хешем, а затем опять побайтово (или как-то иначе) сравниваются объекты. Совпали - значит мы нашли, если нет, то это просто коллизии или "генерация данных с тем же хешем."
      GetHash() и isEquals всегда пишутся парами (вместе).
      На мой взгляд - чуть медленнее, но надёжно.
      Да и кто выдаёт песни по хешу?)) Autoincremented ID для слобаков?)

  • @Diadema566
    @Diadema566 2 роки тому

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

  • @atillaattila8900
    @atillaattila8900 6 років тому

    Spasibo vam za paleznuyu informachsiyu

  • @Poker-s_S.V.
    @Poker-s_S.V. 7 років тому +1

    Если рассматривать хеширование с точки зрения комбинаторики то любой обратимый хеш подразумевает одинаковое количество комбинаций в параметрах комбинаций хешь и в параметрах комбинаций данных или с большими параметрами комбинаций хеша так как в таком случаи комбинаций у хеша будет больше, что легко вместит в себя все комбинации исходных данных. Таким образом не обратимый хешь всегда имеет повторяющиеся комбинации, а для этого всего навсего можно использовать наложение комбинаций из больших параметров комбинаций данных, циклически на комбинации с меньшими параметрами которые олицетворяют хешь. (ну тоесть, к примеру комбинаций данных равно шесть, а комбинаций хеша равно три, вот и получается что каждая вторая комбинация данных это повторяющаяся комбинация хешь) - КТО НЕ ПОНЯЛ Я НЕ ВИНОВАТ...)))))))))

    • @ХаимМохави
      @ХаимМохави 5 років тому

      Пусть исходный текст содержит числа до ста. А хэш может содержать только 10 чисел. Придётся закодировать одним число хэша 10 чисел исходника. Нельзя определить какое число исходника за данным чилом хэша. Хэшем невозможно пользоваться.

  • @sparrow3361
    @sparrow3361 3 роки тому

    1:00 Это функция, которая принимает какие-то данные, каким-то образом преобразует эти какие-то данные, и вернет другие данные
    3:55 Функция хеширования обязательно должна возвращать нам такие же данные, т.е. хэш должен быть одинаковый.
    ??????????
    Я ничерта не понял из этого видео, про условия объяснили да, но что это за данные такие и что такое хеширование(тайтл видео) я так и не понял.
    Видимо я совсем тупой

  • @medov.alexey
    @medov.alexey 5 років тому +1

    Хорошая лекция =)

  • @ДмитрийКотик-е1е
    @ДмитрийКотик-е1е 5 років тому

    Мне понравилось) спасибо за информацию)

  • @zoongnguyen9377
    @zoongnguyen9377 8 років тому

    Спасибо большое буду ждать еще видео

  • @alexandratsinina34
    @alexandratsinina34 4 роки тому

    На удивление в этом видео мне все понятно в отличие от других

  • @nicivanov5135
    @nicivanov5135 3 роки тому

    Есть фунции хеширования. Но почему такая проблема, найти исходный код например. sha 256? Не на функцию, а именно на алгорим? ссыку бы на пруф.
    Да есть инфа типо, тут корень кубический из натуральных чисел тут xor. Но где сам исходник взять?!

  • @victorprohorov6201
    @victorprohorov6201 2 роки тому

    а как же сделать функцию необратимой если она детерминирована?

  • @professorbis7530
    @professorbis7530 9 років тому +3

    У меня вопросы
    почему параллельные вычисления плохо?
    Квантовый компьютер будет взламывать любой хэш легко?

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +8

      Professor Bis Хеш используется для определённых вещей. Если вам нужна скорость, то скорее всего вы ищите не хеш а контрольную сумму. То есть это не то, что параллельность - это всегда плохо, а то что "для тех процессов, где вам нужен хеш, скорость - это плохо".Хеш используется для паролей, если они слишком быстрые, то атакующий сможет слишком много паролей проверить за короткий промежуток времени. Хеш также используется для создание цепей биткоина (я собираюсь об этом серию видео делать). Там если он будет слишком быстрый, люди смогут начать воровать деньги перебивая уже существующие цепи.Если вдруг это плохая аналогия, то я попытаюсь перефразировать себя. Представьте себе, что вам нужна функция, которая достаточно медленная. Вы создаёте эту функцию, и называете её "хеш". Теперь вопрос, почему она должна быть медленной? И ответ простой, потому что вы создали её тогда, когда вам была нужна медленная функция.А про квантовые компьютеры не знаю. Возможно и будут. Тут вопрос в том, сможет-ли кто-то создать алгоритм на квантовом компьютере, который будет работать параллельно. Если вы сейчас возьмёте квантовый компьютер, и попытаетесь на нём например компресоовать видео. То вы увидите, что всё происходит очень медленно. Квантовые компы исполняют очень определённые алгоритмы очень быстро, но они не какие-то магические устройства, способные делать всё. Дальше вопрос к математикам, инженерам, и возможно к физикам. Можно-ли написать квантовый алгоритм, который выполняет хеширование быстрее чем классический компьютер? Я не знаю ответа.

    • @ЕвгенийБабийчук-г2н
      @ЕвгенийБабийчук-г2н 6 років тому

      @@VladimirMozhenkov Здравствуйте , скажите пожалуйста контрольная сумма обратима?

    • @VladimirMozhenkov
      @VladimirMozhenkov  6 років тому

      @@ЕвгенийБабийчук-г2н Если контрольная сумма обратима, то это уже называется коррекция ошибок. ru.wikipedia.org/wiki/%D0%9F%D1%80%D1%8F%D0%BC%D0%B0%D1%8F_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA
      Хотя тогда я-бы уже не называл это контрольной суммой.

  • @Toohchu
    @Toohchu 4 роки тому

    Чем вызвано требование к последовательности алгоритма? Догадываюсь, что это требование со стороны безопасности, но не пойму чем опасна возможность распараллелить алгоритм.

  • @wAlxJ9
    @wAlxJ9 4 роки тому

    А чем плох алгоритм который может быть запаралелен?

  • @ЮрийКряжев-ч6к
    @ЮрийКряжев-ч6к 6 років тому

    Вопрос можно поиграть на телефоне игры которые на пк

  • @Sleep88Walker
    @Sleep88Walker 3 роки тому

    Вот это годится

  • @tonikkk25
    @tonikkk25 4 роки тому

    Спасибо. Но остаётся один вопрос. Почему независимые хэш-генераторы генерируют некое число X одинаково? Они все работают по одному и тому же алгоритму?

    • @garrygaller2853
      @garrygaller2853 4 роки тому

      Алгоритмов хэширования много. И каждый выдает свой результат. А что такое "независимый хэш-генератор" известно только вам.

    • @tonikkk25
      @tonikkk25 4 роки тому

      @@garrygaller2853 я имел в виду разные сайты хэш генераторов, они же независимы друг от друга

    • @garrygaller2853
      @garrygaller2853 4 роки тому +1

      @@tonikkk25 Это не имеет значения. Один и тот же алгоритм выдаст один и тот же хэш для одного и того же элемента. Почему? Потому что главное свойство хэш-алгоритмов - детерминированность. Например, если моя хэш-функция это остаток от деления на 5, то любой код, который использует мою хэш-функцию всегда будет получать от числа 12 хэш равный 2, а от числа 5 хэш равный нулю. И при этом асболютно неважно кто и где будет запускать этот код: Вася Пупкин из 5 А на своем смартфоне или астронавт на квантовом компе своего космолета.

    • @tonikkk25
      @tonikkk25 4 роки тому

      Спасибо!

  • @Олег-ю3щ4ъ
    @Олег-ю3щ4ъ 8 років тому

    У хэширования нет требования на не обратимость. У криптографического хэширования есть такое требование.

  • @Azimofffable
    @Azimofffable 5 років тому

    там разница два бита

  • @SuperCKAyTWorld
    @SuperCKAyTWorld 9 років тому

    А что за "Почти университет"? Это университет который скоро заработает или организация какая-то?))

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +11

      SuperCKAyTWorld Это сайт, который я создал. Если найду других преподавателей, которые захотят объединить усилия, то это станет порталом. Пока что "Почти Университет" - это я... надеюсь это не навсегда так.

  • @P45hke
    @P45hke 5 років тому

    Я вообще не понимаю, что такое! Чувак что, я курил!? Как это использовать в повседневной жизни? Это, типо Жене сказал, что бабки лежат в моём кошелке, но я не сказал, что он в машине в гараже. Это является hash-ом?

  • @teastrum
    @teastrum 4 роки тому

    ничего не понял

  • @АльбертГ-щ8п
    @АльбертГ-щ8п 9 років тому

    Скажите почему алгоритм необратим ведь у каждого алгоритма есть формула по которой он считается и по этой формуле высчитать X если он ранее неизвестен

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +7

      +Альберт Галиакбаров
      Представьте себе формулу f(x) = x % 100
      Я вам говорю f(x) = 20. Скажите мне чему равен x?

    • @FAQTheSims3
      @FAQTheSims3 9 років тому

      +Vladimir Mozhenkov не может быть формулы с процентами. Как ее считать то?

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +1

      +FAQ The Sims 3 Это не процент - это остаток от деления ))) просто пивык к такой записи, так как этот оператор как раз так в программировании пишется.
      То есть f(x) равно отстоку от деления x на 100.

    • @АльбертГ-щ8п
      @АльбертГ-щ8п 9 років тому

      +Vladimir Mozhenkov Ну допустим здесь я не смогу найти X потому что мне не совсем понятно на что он делится. но как например "дехешируют" хеш в MD5? а в моем случае нужно найти первоначальные данные из Fnv hash 64 битный.

    • @VladimirMozhenkov
      @VladimirMozhenkov  9 років тому +4

      +Альберт Галиакбаров Вы знаете на что он делится. На 100. Просто это необратимая операция. Вы можете получить остаток от деления одного числа на дрогое, но зная результат и делитель, вы не знаете превоначальное число.
      MD5 не совсем дехешируют, там используют так называемые Радужные Таблицы. Это довольно большая тема, и давайте я про неё запишу отдельное видео. Тема-то интересная.
      Так что следите за каналом, ответ будет.