TotalHash
UK
Відкрити в Telegram

Хеш-функція: що таке хеш і хешування

5 хв читання

Хеш-функція перетворює будь-які дані на рядок фіксованої довжини, який називають хешем. Його можна порівняти з відбитком пальця: навіть найменша зміна вхідних даних повністю змінює відбиток. Хеші використовують для перевірки файлів, зберігання паролів, у блокчейні та майнінгу. У цій статті простими словами пояснюємо, що таке хеш, які властивості має хороша хеш-функція, приклади MD5, SHA-1 і SHA-256, хешування паролів із сіллю, роль хешів у блокчейні, а також даємо змогу самому згенерувати SHA-256.

Стаття освітня. Інструмент нижче обчислює хеш у вашому браузері, дані нікуди не надсилаються.

Хеш простими словами: відбиток даних

Уявіть, що ви надсилаєте другові великий файл і хочете переконатися, що він дійшов без змін. Ви обчислюєте хеш файлу і надсилаєте його окремо. Друг обчислює хеш отриманого файлу: якщо вони збігаються, файл ідентичний. Хеш не шифрує дані і не дозволяє їх відновити, він лише дає короткий унікальний «підпис» вмісту. Хеш-сума файлу на сайті завантаження потрібна саме для такої перевірки.

Властивості хеш-функції

  • Детермінованість: однакові дані завжди дають однаковий хеш.
  • Швидкість: хеш обчислюється швидко для будь-якого обсягу даних.
  • Односпрямованість: з хешу неможливо отримати вихідні дані.
  • Лавинний ефект: зміна одного символу повністю змінює хеш.
  • Стійкість до колізій: практично неможливо знайти два різні входи з однаковим хешем.

Приклади: MD5, SHA-1, SHA-256

АлгоритмДовжинаСтатус
MD5128 бітКолізії знайдені, не придатний для безпеки
SHA-1160 бітПрактичні колізії продемонстровані, виводиться з ужитку
SHA-256256 бітНадійний, використовується в біткоїні та сертифікатах

MD5 досі використовують для перевірки цілісності, де немає зловмисника, але не для захисту.

Де ви стикаєтеся з хешами щодня

  • Завантаження програм: сайти публікують SHA-256 файлу, щоб ви могли перевірити, що його не підмінили.
  • Паролі: коли ви входите на сайт, сервер порівнює хеш введеного пароля зі збереженим хешем.
  • Git: кожен коміт у системі контролю версій має ідентифікатор, отриманий хешуванням вмісту.
  • Цифрові підписи: підписують не весь документ, а його хеш, це швидше і так само надійно.
  • Хмарні сховища: сервіси використовують хеші, щоб знаходити однакові файли і не зберігати їх двічі.

Тобто хеш-функції працюють навколо вас постійно, навіть якщо ви про них не замислюєтеся. Вони роблять інтернет безпечнішим і допомагають перевіряти, що дані не змінилися дорогою.

Хешування паролів: сіль і повільні алгоритми

Сервіси не повинні зберігати ваш пароль у відкритому вигляді. Вони зберігають його хеш. Але звичайні швидкі хеші на кшталт SHA-256 погано підходять для паролів: зловмисник може перебирати мільярди варіантів на секунду. Тому використовують «сіль», тобто випадкову добавку до кожного пароля, і спеціальні повільні алгоритми, наприклад Argon2id або bcrypt. Вони навмисно вимагають багато часу й пам'яті, щоб перебір став дорогим. Вам як користувачеві це означає одне: використовуйте унікальні довгі паролі і менеджер паролів, бо навіть найкраще хешування не врятує пароль «123456».

Хеші в блокчейні і майнінгу

У блокчейні кожен блок містить хеш попереднього, утворюючи ланцюг: змінити старий запис означає змінити всі наступні хеші. Майнінг біткоїна полягає в пошуку такого числа (nonce), щоб подвійний SHA-256 заголовка блоку був меншим за ціль мережі. Швидкість цього пошуку і є хешрейт: хешрейт. Як працює майнінг: майнінг біткоїна. Загальний огляд теми: криптовалюта і майнінг.

Спробуйте самі: генератор SHA-256

Введіть будь-який текст і подивіться на SHA-256. Потім змініть одну літеру або додайте крапку: хеш стане зовсім іншим. Окремий інструмент: SHA-256 онлайн.

Довжина …
Хеш обчислюю…

SHA-256 у грі

TotalHash є безкоштовною грою-майнінгом у Telegram. Пристрій обчислює справжні хеші SHA-256 як ігрову механіку, а завдання надсилають невеликі суми USD₮ і GRAM на гаманець TON. Без обіцянок заробітку.

Безкоштовна гра в Telegram.

Відкрити TotalHash

Короткі відповіді

Що таке хеш?

Рядок фіксованої довжини, отриманий з даних хеш-функцією, як їхній відбиток.

Чи можна розшифрувати хеш?

Ні, хеш-функція односпрямована.

Чому MD5 не можна використовувати для безпеки?

Для нього знайдені колізії.

Як правильно зберігати паролі?

З сіллю та повільними алгоритмами на кшталт Argon2id або bcrypt.