Інструменти для розробників

Генератор хешів та контрольні суми

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

5 алгоритмів одночасно Контрольна сума для тексту та файлів Локально, нуль завантажень Миттєві результати
Символи Байти UTF-8

ОСОБЛИВОСТІ

Усі п’ять хешів на одній сторінці

Швидкі відбитки до безпечних підписів — кожен хеш, необхідний для розробників, операцій та перевірки завантажень.

01

П’ять алгоритмів

MD5, SHA-1, SHA-256, SHA-384 та SHA-512 показані разом із вихідною довжиною біт — не потрібно перемикатися між інструментами.

02

Обчислення в реальному часі

Текстові хеші під час друку, не потрібно натискати кнопку. Результати у моноширинному шрифті — клацніть рядок для копіювання.

03

Перевірка цілісності файлу

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

04

Локально, нуль завантажень

Сімейство SHA використовує вбудований Web Crypto API браузера. Текст і файли ніколи не залишають вашу машину — конфіденційний вміст у безпеці.

05

Узгодження з UTF-8

Текст хешується як байти UTF-8, тому результати точно відповідають md5sum, PHP md5() та Python hashlib.

06

Копіювання в один клік

Копіюйте кожен хеш окремо або всі одразу у стандартному форматі контрольної суми, готовому до вставки у термінал.

Що варто знати про хеші

Ідея проста, але використання невідповідного хешу для невідповідного завдання — це справжня помилка безпеки.

Що таке MD5 і SHA-1 насправді?

MD5 (алгоритм створення дайджесту повідомлень 5) був розроблений Рональдом Рівестом з MIT і опублікований 1992 року як RFC 1321, генеруючи фіксований дайджест довжиною 128 біт (32 шістнадцяткових символи) як наступник MD4. SHA-1 був розроблений Агентством національної безпеки США і опублікований 1995 року як федеральний стандарт FIPS 180-1, генеруючи 160 біт. Обидва стали найбільш широко розгорнутими хеш-алгоритмами протягом наступних двох десятиліть — їх використовували для контрольних сум файлів, зберігання паролів, цифрових підписів та ідентифікаторів комітів Git. Зауважте, що вони все ще генерують правильні дайджести сьогодні; «небезпечний» означає, що їх стійкість до зіткнень зламано, а не що їх результат неправильний.

Хешування, шифрування та кодування — це одне й те саме?

Ні — вони розв'язують різні проблеми. Кодування (наприклад, Base64 або кодування URL) — це оборотне перетворення формату, яке може скасувати кожен, не забезпечуючи безпеки. Шифрування можна скасувати за допомогою ключа: відкритий текст перетворюється на шифротекст, і правильний ключ дозволяє його розшифрувати. Хешування — це однонаправлений процес, не має ключа, і оригінал неможливо відновити з дайджесту — воно використовується для відбитків, перевірок цілісності та підписів. Два поширені помилкові уявлення: сприйняття Base64 як «шифрування» та твердження, що пароль «зашифровано за допомогою MD5» — це саме хешування, причому небезпечний спосіб зберігання паролів.

Чому неможливо скасувати хеш і відновити оригінал?

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

Чи можна ще використовувати MD5 і SHA-1?

Для перевірки, чи файл випадково пошкодився під час передачі — так, будь-яка зміна окремого байту практично завжди змінює MD5. Але ніколи для цілей безпеки: для обох існують практичні атаки зіткнення (дослідники можуть створити два різні файли з однаковим MD5 під своїм контролем). Використовуйте SHA-256 або вищий для паролів, підписів та сертифікатів.

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

Три основні причини: ① різне кодування символів (цей інструмент завжди використовує UTF-8; старі інструменти можуть використовувати GBK або Latin-1); ② символ нового рядка в кінці — командний рядковий додаванням додає його за замовчуванням (використовуйте echo -n); ③ випадковий пробіл або невидимий символ під час копіювання. Хеші чутливі до кожного окремого байту, тому зміна на один байт повністю змінює результат.

Чому не можна зберігати паролі у вигляді звичайного MD5/SHA-256?

Звичайні хеші швидкі. При витоку таблиці хешів зловмисники можуть підбирати мільярди варіантів за секунду, а таблиці веселок миттєво здійснюють зворотний пошук за поширеними паролями. Паролі потребують навмисно повільних алгоритмів, складних для пам'яті (bcrypt, scrypt, Argon2), з унікальною сіллю для кожного пароля, що робить підбір методом грубої сили надто дорогим.

Як перевірити цілісність завантаженого файлу?

Знайдіть контрольну суму, опубліковану на офіційному сайті (зазвичай SHA-256), перетягніть завантажений файл на вкладку «Контрольна сума файлу» тут, а вставте офіційне значення у поле над результатами. Інструмент визначає алгоритм за довжиною значення, і відповідний рядок стає зеленим, якщо байти файлу точно відповідають тому, що опублікував видавець; червоний колір означає пошкодження або атаку типу "людина посередині" — не запускайте цей файл.

Який з п'яти алгоритмів обрати

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

Алгоритм Рік появи Довжина виводу Безпека Типове використання
MD5 1992 128 біт (32 символи) Зламаний; колізії можливі на практиці Незахищені ідентифікатори, дедуплікація, сумісність зі старими системами
SHA-1 1995 160 біт (40 символів) Колізії можливі на практиці з 2017 року Ідентифікатори історії Git та інших старих систем; не для нового безпечного використання
SHA-256 2001 256 біт (64 символи) Безпечний на сьогодні Контрольні суми файлів, підписи, TLS-сертифікати, блокчейни — універсальний стандарт за замовчуванням
SHA-384 2001 384 біт (96 символів) Безпечний Скорочений SHA-512 для нормативів, що вимагають 384 біти
SHA-512 2001 512 біт (128 символів) Безпечний Підписи з високим рівнем захисту; часто швидший за SHA-256 на 64-бітових процесорах

"Безпечний" означає, що на даний момент не існує практичних публічних атак на колізії. Для зберігання паролів використовуйте bcrypt/Argon2 незалежно від вибору хешу.

Контрольні суми: як фактично перевірити завантажений файл

Для чого призначений той рядок MD5 або SHA-256 на сторінці завантаження, як його порівняти та з чим порівняти — все в одному розділі.

Навіщо взагалі перевіряти

Файл на вашому диску не обов'язково той самий, що й на сервері. Десять секунд на порівняння контрольної суми захищають від трьох видів проблем:

Пошкодження під час передачі

Великі файли при відновлюваному завантаженні та нестабільних мережах часто отримують випадкові байти; усунення несправностей несправного інсталятора займає набагато більше десяти секунд.

Дзеркала не синхронізовані

Багато завантажень фактично надходять із дзеркал або CDN, де затримка синхронізації або збої кешу можуть передати застарілу версію файлу — або неповний.

Навмисне підроблення

Коли джерело завантаження зламано або публічна мережа захоплена, файли можуть отримати бекдори. У 2016 році сайт Linux Mint був зламаний, а його посилання на завантаження замінені на ISO-файл із бекдором — першою відповіддю проекту був заклик до всіх перевірити контрольну суму.

Що таке контрольна сума

Видавець хешує файл на своєму сервері і оприлюднює результат на сторінці завантаження; після завантаження ви обчислюєте хеш локально. Якщо два рядки збігаються символ у символ, байти файлу точно відповідають тим, що оприлюднила видавець — він не пошкоджений і не змінений. Перевірка чутлива до кожного байта: навіть зміна одного байта повністю змінює значення. Загалом, контрольні суми також включають прості схеми на кшталт CRC32, які виявляють лише випадкове пошкодження, тоді як криптографічні хеші типу MD5/SHA додатково захищають від навмисної підробки.

Перевірка файлу за три кроки

  1. 1
    Отримайте офіційну контрольну суму

    На сторінці завантаження знайдіть оприлюднене значення MD5 / SHA-256 (часто позначене як «checksum» або постачається як файл-компаньйон .sha256) і скопіюйте весь рядок.

  2. 2
    Перетягніть файл і вставте значення

    Перейдіть до вкладки «File checksum» вище, перетягніть завантажений файл і вставте контрольну суму в поле над результатами.

  3. 3
    Оцініть результат за кольором

    Інструмент визначає алгоритм за довжиною значення: зелений колір означає, що файл точно відповідає офіційному випуску і є безпечним для використання; червоний — можливо, файл пошкоджений або змінений — не запускайте його.

Як читати контрольні суми на офіційних сайтах

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

# 1. Одиничний рядок: лише значення
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. Формат sha256sum: значення + два пробіли + назва файлу (MANIFEST SHA256SUMS — це багато таких рядків)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. Формат BSD: Алгоритм (назва файлу) = значення
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 чи SHA-256

Перевірте те, що надає офіційний сайт, але якщо можна вибирати: MD5 цілком адекватний для виявлення випадкового пошкодження під час передачі (будь-яка випадкова зміна майже завжди змінює MD5). Для захисту від навмисних модифікацій — антивіруси, сертифікати, підписані пакети — вам потрібен SHA-256 або потужніший алгоритм, оскільки на практиці атаки на колізії дозволяють зловмисникам створити два різні файли з однаковим MD5. Про це йдеться в розділі «Історія безпеки» нижче.

Альтернатива: перевірка через командний рядок

У Linux та macOS інструменти для контрольних сум приймають прапор -c для автоматичної перевірки цілого маніфесту — не потрібно порівнювати вручну. Вбудовані команди Windows лише обчислюють значення, яке потім потрібно порівняти з офіційним рядком самостійно.

Оточення Команда перевірки
Linux sha256sum -c SHA256SUMS (перевіряє кожен файл, вказаний у маніфесті)
macOS shasum -a 256 -c checksum.txt
Швидка перевірка одного значення echo "official-value filename" | sha256sum -c - (виводить OK у разі успіху)
Windows Обчисліть за допомогою Get-FileHash <file> -Algorithm SHA256, потім порівняйте з офіційним значенням

Коротка історія безпеки: як MD5 був зламаний

MD5 не вийшов з ладу за одну ніч — від першого вченого розкриття до підроблених сертифікатів у реальному світі пройшло два десятиліття.

  1. 1992

    MD5 оприлюднено

    Рональд Рівест представив MD5 у RFC 1321. Швидкий, простий у реалізації та генерує 128-бітний дайджест — він швидко став стандарт-факто для контрольних сум файлів та зберігання паролів, і вважався криптографічно безпечним.

  2. 2004

    Команда Ван Сяоюнь розкриває повні колізії MD5

    На CRYPTO 2004 команда під керівництвом китайського математика Ван Сяоюня продемонструвала повну атаку колізій на MD5 — створила два файли з різним вмістом, але однаковим хешем (спочатку приблизно за годину на суперкомп'ютері IBM P690; згодом вдосконалення скоротило це до кількох секунд на звичайному обладнанні). Заявлена стійкість MD5 до колізій зникла; овація стоячи стала одним з найвідоміших моментів в криптографії.

  3. 2008

    Підроблені сертифікати в реальному інтернеті

    Марк Стівенс, Олександр Сотіров та інші використали колізію з вибраним префіксом для підробки проміжного сертифіката CA, якому довіряють браузери: сертифікати з різними префіксами мали той самий підпис. Тепер зловмисник міг видавати "дійсні" HTTPS-сертифікати для будь-якого підробленого сайту. Сертифікаційні органи незабаром припинили випуск сертифікатів MD5.

  4. 2012

    Зловмисне програмне забезпечення Flame атакує Windows через MD5

    Зловмисне програмне забезпечення Flame, створене державою, використало колізію MD5, щоб змусити орган сертифікації термінальних серверів Microsoft підписати підроблений сертифікат для підпису коду, що дозволило йому поширюватися по Близькому Сходу, маскуючись під оновлення, підписане Microsoft. Це була перша атака в реальних умовах з використанням колізії MD5; Microsoft скасувала сертифікат у терміновому патчі.

  5. 2017

    SHAttered: SHA-1 падає

    Google та нідерландський інститут CWI (Марк Стівенс та ін.) опублікували два різні PDF-файли з однаковим хешем SHA-1 — за ціною приблизно 6500 процесор-років та 110 відеокарт-років. Незабаром після цього браузери припинили довіряти сертифікатам SHA-1, а платформи Git прискорили перехід від нього. Ера 160-бітів закінчилася.

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

Хешування з командного рядка

Коли браузер не під рукою, кожна ОС має вбудовану команду (показано SHA-256).

Середовище Команда
Linux / macOS sha256sum назва_файлу (на macOS: shasum -a 256 назва_файлу)
Windows PowerShell Get-FileHash назва_файлу -Algorithm SHA256
Windows CMD certutil -hashfile назва_файлу SHA256

Хешування в коді

Мінімальні приклади чотирьох поширених мов, коли ви пишете скрипти або інтегруєте API.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

Вбудований Web Crypto браузера підтримує лише сімейство SHA та вимагає HTTPS або localhost; MD5 потребує сторонньої бібліотеки.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

Функції hash() та hash_file() підтримують md5, sha1, sha256, sha512 та інші; хешування файлів відбувається потоково, тому використовується мало пам'яті.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

Стандартна бібліотека hashlib не потребує встановлення; використовуйте file_digest() для потокового хешування великих файлів (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

Хешування не входить до стандартної бібліотеки; додайте crates RustCrypto sha2 та md-5 у Cargo.toml. Якщо ввімкнено функцію std, io::copy передає файли потоково до хешера.

FAQ

Чи завантажилися мої тексти та файли?

Ні. Все обчислюється у вашому браузері: функції сімейства SHA використовують вбудований Web Crypto API, а MD5 працює в JavaScript сторінки. Інструмент працює навіть без підключення до мережі — спробуйте це з конфіденційним файлом.

Чому порожній текст все ще має хеш?

Алгоритми хешування визначають унікальний фіксований результат навіть для нульових байтів. MD5 порожнього рядка — це d41d8cd98f00b204e9800998ecf8427e, а його SHA-256 починається з e3b0c442. Цей інструмент просто приховує результати, коли введення порожнє, щоб ви не скопіювали їх помилково.

Чи може він обчислювати хеш для файлів будь-якого розміру?

Це залежить від доступної пам'яті браузера — інсталятори та образки дисків розміром у кілька сотень зазвичай обробляються без проблем. Файли завантажуються в пам'ять за один прохід, тому для файлів розміром у кілька ГБ краще використовувати інструменти командного рядка (sha256sum, certutil).

Чому хеші мають різну довжину?

Довжина визначається алгоритмом: MD5 — 32 шістнадцяткових символи, SHA-1 — 40, SHA-256 — 64, SHA-512 — 128. Два шістнадцяткових символи на байт — і довжина не залежить від розміру введення: файл розміром у один байт і файл розміром у кілька ГБ дають 64 символи при використанні SHA-256.

Чи можу я використовувати його для створення підписів API?

Так. Багато відкритих платформ підписують запити шляхом хешування "параметрів + секретного ключа" за допомогою MD5 або SHA-256. Цей інструмент чудово підходить для перевірки значення під час налагодження; у виробничому середовищі обчислюйте хеші за допомогою бібліотеки вашої серверної мови і ніколи не вставляйте секретний ключ у код фронтенду.

Як порівняти контрольну суму за допомогою цього інструменту?

Перейдіть на вкладку "Контрольна сума файлу", перетягніть файл і вставте контрольну суму з офіційного сайту в поле над результатами. Інструмент автоматично визначає алгоритм за довжиною (32 символи MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512): відповідний рядок стає зеленим з позначкою "Пройдено", якщо вони збігаються, і червоним — якщо ні. Реєстр символів, оточуючі пробіли та розриви рядків автоматично ігноруються.

Супутні інструменти

Інші інструменти для кодування, криптографії та паролів.