• Добро пожаловать в Пиратскую Бухту! Чтобы получить полный доступ к форуму пройдите регистрацию!
  • В этом разделе можно публиковать только уникальные статьи, которые имеют уникальность по сервису text.ru свыше 90% !
    За несоблюдений правил раздела будете оштрафованы или заблокированы.
  • Гость, стой!

    В бухте очень не любят флуд и сообщения без смысловой нагрузки!
    Чтобы не получить бан, изучи правила форума!

    Если хотите поблагодарить автора темы, или оценить реплику пользователя, для этого есть кнопки: "Like" и "Дать на чай".

Акулы пера Хэш просто и понятно (но это не точно)

Jess1e_James

Гардемарин
Местный
Регистрация
26.12.19
Сообщения
156
Онлайн
7д 10ч 45м
Сделки
0
Нарушения
0 / 1
Если вы когда-нибудь читали что-нибудь о биткойнах, паролях или проверяющем программном обеспечении, то встречали слово «хэш». Хэш - это, по сути, просто отпечаток пальца заданных данных (вводные данные), независимо от того, является ли этот ввод файлом или строкой текста. Самая важная вещь, которую нужно понимать при хэшировании, это то, что если вы сделаете какие-либо изменения в вводе, независимо от того, насколько они незначительны, хэш (отпечаток) изменится полностью. И наоборот, если вы хэшируете один и тот же вход несколько раз, вы всегда получите один и тот же хэш (выход). Это чрезвычайно полезно. Например, если вы хотите отправить кому-то файл и убедиться, что он получил его в точности таким как вы отправили, можно создать хэш этого файла, отправить ему хэш через другой канал, а затем получатель хэширует полученный файл и сравнит его с хэшем, который он получил от вас отправили. Если хэш отличается, то файл был кем-то изменен, а значит сам канал связи скомпрометирован.

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

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

Однако для этого хэши также должны быть фиксированной длины. Другими словами, хэш строки из десяти слов должен иметь ту же длину, что и хэш строки из шестидесяти слов или файла фильма размером 45 ГБ. Например, хэширование слов «теневой форум» с использованием алгоритма хэширования MD5 приводит к хэшу fa3b66a90e779aa991c25570fbcdff49, в то время как хэширование одного из моих zip-файлов размером 12 ГБ приводит к хэшу fe1cefe33df394fc565214cb96e6228f. Конечно, некоторые алгоритмы хэширования длиннее других. MD5 является довольно коротким хэш-алгоритмом по сравнению с SHA512.

Преимущество использования более длинного хэша состоит в том, что он производит больший отпечаток для проверки, поскольку иногда два разных входа могут создавать одинаковые выходные данные. Это известно как столкновение, и более длинный хэш с меньшей вероятностью вызовет столкновение, чем более короткий хэш. С учетом вышесказанного практически нет необходимости беспокоиться о коллизиях для большинства современных алгоритмов хэширования, однако при использовании MD5 это возможно (в теории), но на практике вас скорее ударит молния во время хэширования, чем полученный хэш вызовет столкновение.

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

Тезисно:
  • Хэши принимают входные данные и обеспечивают выход фиксированной длины.
  • Легко узнать выходные данные, если у вас есть только входные, но невероятно сложно определить входные, имея только выходные.
  • Если вы можете определить входные данные из выходных быстрее, чем просто сделать несколько случайных предположений, алгоритм хэширования считается слабым.
  • Хэши могут быть полезны как для проверки того, что файлы не изменились, так и для защиты паролей. Но это всего лишь два распространенных способа использования хэшей из множества других.
 

Nikita_cpp

Незнакомец
Читатель
Регистрация
24.02.20
Сообщения
15
Онлайн
21ч 47м
Сделки
0
Нарушения
0 / 0
Вообще это очень полезно и в других местах, к примеру я при создании програм никогда не храню пароли в БД в открытом виде, все они захешированы, но когда пользователь пытаеться войти в систему программа хеширует ввод и сравнивает с тем что в БД
В итоге получается довольно надёжно
 
Сверху