Utilia

Генератор хешів: MD5, SHA-256, SHA-512

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

Що хешувати
Текст кодується в UTF-8.
Алгоритми

Як користуватися генератором хешів

  1. У розділі Що хешувати виберіть Текст або Файли.
  2. Для тексту введіть або вставте його в поле Текст для хешування. Хеші оновлюються під час введення; кнопка Обчислити хеш перераховує їх за вимогою.
  3. Для файлів перетягніть один чи кілька файлів у зону або натисніть на неї, щоб вибрати. Для великих файлів з’являється індикатор прогресу з кнопкою Скасувати.
  4. Позначте потрібні Алгоритми (MD5, SHA-1, SHA-256, SHA-512) і Формат виводу: шістнадцятковий з малими літерами, шістнадцятковий з великими літерами або Base64.
  5. Щоб перевірити завантажений файл, вставте опубліковану контрольну суму в поле Порівняти з очікуваним хешем (необов’язково). Інструмент покаже, який алгоритм збігається, або що не збігається жоден.

Що таке хеш

Криптографічна хеш-функція перетворює будь-які вхідні дані, чи то слово, чи образ диска на 50 ГБ, на короткий відбиток фіксованого розміру. Однакові вхідні дані завжди дають однаковий хеш, а зміна навіть одного біта повністю змінює результат. Відновити вхідні дані з хешу неможливо.

Алгоритм Розмір виводу Довжина hex Статус
MD5 128 біт 32 символи Зламаний: лише для контрольних сум
SHA-1 160 біт 40 символів Зламаний: колізії показано у 2017 році
SHA-256 256 біт 64 символи Надійний, поточний стандарт
SHA-512 512 біт 128 символів Надійний, часто швидший на 64-бітних процесорах

Наприклад, хеш SHA-256 для abc – це ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Перевірка завантаженого файлу

Розробники програм часто публікують контрольну суму SHA-256 поруч зі своїми файлами. Після завантаження відкрийте режим Файли, перетягніть файл і вставте опубліковане значення в поле порівняння. Збіг доводить, що файл не пошкоджено під час завантаження й що він ідентичний тому, який хешував видавець. Він не доводить, що видавцю можна довіряти. Для цього сама контрольна сума має походити з надійного джерела, наприклад із сайту за HTTPS або з підписаного випуску.

Як обробляються великі файли

Файли читаються локально й ніколи не завантажуються на сервер. Файли до 64 МБ хешуються за один прохід вбудованим API Web Crypto вашого браузера. Більші файли читаються частинами по 4 МБ і подаються в інкрементні хеш-функції, тож споживання пам’яті лишається сталим, а файли розміром у кілька гігабайтів можна хешувати. На типовому комп’ютері очікуйте кілька сотень мегабайтів на секунду для SHA-256.

Текст, кодування й кінці рядків

Хеш обчислюється для байтів, а не символів. Цей інструмент кодує текст у UTF-8 – стандарт у вебі та в більшості мов програмування. Кирилиця в UTF-8 займає по два байти на літеру, тож хеш українського слова залежить від кодування. Якщо в іншому місці ви отримуєте інший результат, перевірте приховані відмінності: кінцевий перенос рядка (echo "abc" | sha256sum хешує abc\n; використовуйте echo -n), кінці рядків Windows (\r\n) або інше кодування, як-от UTF-16.

Поширені запитання

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

Ні, і простий SHA-256 теж не підходить. Ці функції створено швидкими, тому зловмисник може перевіряти мільярди варіантів на секунду. Для паролів потрібен повільний алгоритм із сіллю, як-от Argon2, bcrypt чи scrypt.

Чи MD5 ще корисний?

Так, для виявлення випадкових пошкоджень, усунення дублікатів файлів або зіставлення зі старим списком контрольних сум. На нього не можна покладатися проти навмисного підроблення, бо будь-хто може створити два різні файли з однаковим MD5.

Чи завантажуються мої файли на сервер?

Ні. Файли читає й хешує ваш браузер. Нічого не надсилається на сервер, тож ви можете хешувати конфіденційні документи.

Чому мій хеш не збігається з отриманим у командному рядку?

Майже завжди відрізняються вхідні дані: кінцевий перенос рядка, пробіли, кінці рядків чи кодування тексту. Для файлів переконайтеся, що завантаження завершено. Один відсутній байт дає зовсім інший хеш.

Чим відрізняється вивід у hex і Base64?

Це два способи записати ті самі байти. Шістнадцятковий – звичайний формат для контрольних сум; Base64 коротший і використовується, наприклад, в атрибутах Subresource Integrity (sha256-…). Поле порівняння приймає будь-який із них.