Генератор хешів SHA-256
Введіть будь-який текст і одразу отримайте його хеш SHA-256 — фіксований 256-бітовий (64 шістнадцяткові символи) дайджест. Корисно для контрольних сум, перевірки цілісності та відбитків даних.
Створити хеш SHA-256
Формула хеша SHA-256
Де:
- \(M\) — вхідне повідомлення, закодоване в UTF-8 і доповнене до кратного 512 бітам
- \(M^{(i)}\) — \(i\)-й 512-бітовий блок повідомлення
- \(H^{(0)}\) — вісім початкових значень хеша, визначених стандартом FIPS 180-4
- \(\text{compress}\) — функція стиснення: 64 раунди модульних додавань, циклічних зсувів і побітових операцій, застосованих до робочих змінних \(a\) — \(h\)
- \(H_j^{(N)}\) — вісім 32-бітових слів підсумкового стану після обробки всіх \(N\) блоків
- \(\|\) — конкатенація; вісім 32-бітових слів об’єднуються, утворюючи 256-бітовий дайджест
На відміну від простої арифметичної формули, SHA-256 — це ітеративний алгоритм: повідомлення розбивається на 512-бітові блоки, кожен блок домішується до внутрішнього стану через 64 раунди побітових операцій, а підсумковий стан виводиться у вигляді 64-символьного шістнадцяткового рядка.
Хеш SHA-256 — приклад обчислення
Приклад: типовий вхідний текст — Hello world! — те саме значення, що й попередньо заповнене в калькуляторі, тож ви можете відтворити цей результат.
\[ \text{SHA-256}(\texttt{"Hello world!"}) = \texttt{c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a} \]
Результат: 64-символьний шістнадцятковий дайджест: c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a
Зверніть увагу: навіть крихітна зміна входу — наприклад, додавання чи видалення одного символу — дає повністю інший хеш. Це лавинний ефект, визначальна властивість безпечних хеш-функцій.
Як користуватися калькулятором хешів SHA-256
- Введіть або вставте свій текст у поле Текст для хешування. Приймається будь-який текст, включно з розривами рядків і символами Unicode, які обробляються як UTF-8.
- Обчислення виконується автоматично — натискати кнопку не потрібно. Результат одразу з’являється під полем Результат хешування.
- Скопіюйте значення Хеш SHA-256 (64-символьний шістнадцятковий рядок) за допомогою кнопки копіювання та використайте його там, де потрібно.
- Щоб отримати хеш іншого тексту, просто замініть вхідні дані — хеш оновлюється в реальному часі.
Що таке SHA-256?
SHA-256 — це криптографічна хеш-функція з родини SHA-2, опублікована Національним інститутом стандартів і технологій США (NIST) у стандарті FIPS 180-4. Вона приймає вхідні дані будь-якої довжини — один символ, пароль або цілий файл — і дає фіксований 256-бітовий результат, який за домовленістю записується як 64 шістнадцяткові символи.
SHA-256 має три властивості, які роблять її корисною на практиці. Вона детермінована: однакові вхідні дані завжди дають однаковий хеш. Вона одностороння (стійка до відновлення прообразу): за одним лише хешем обчислювально неможливо відновити початкові вхідні дані. І вона стійка до колізій: знайти два різні входи з однаковим хешем за сучасних технологій практично неможливо.
Ці властивості пояснюють, де ви зустрічаєте SHA-256 у реальному світі. Вона перевіряє цілісність файлів на сторінках завантаження та в менеджерах пакетів, захищає майнінг доказу роботи й адреси транзакцій Bitcoin, оберігає сертифікати TLS/SSL і лежить в основі схем засоленого хешування паролів (хоча для паролів тепер віддають перевагу спеціальним повільним алгоритмам, як-от bcrypt чи Argon2). Коли вебсайт публікує контрольну суму SHA-256 для файлу, ви можете отримати хеш свого завантаженого примірника й порівняти: однакові дайджести означають, що файл не пошкоджено і не підроблено.
Корисна ментальна модель: хеш — це відбиток даних. Два ідентичні файли завжди мають однаковий відбиток, але відбиток нічого не розкриває про сам файл, і невідомо жодної пари різних файлів зі спільним відбитком.
Обмеження та практичні поради
- Вхідні дані — це текст, а не файли. Цей калькулятор хешує введений вами текст. Щоб перевірити завантажений файл, скористайтеся локальним інструментом (
sha256sumу Linux,certutil -hashfile file SHA256у Windows абоshasum -a 256у macOS) і порівняйте результат з опублікованою контрольною сумою. - Пробіли мають значення. Завершальний пробіл, розрив рядка або інший тип завершення рядків дає зовсім інший хеш. Якщо ви вставили текст і результат не збігається з очікуваним значенням, найпоширеніша причина — невидимі пробільні символи.
- Хешування — це не шифрування. Ви не можете «розшифрувати» хеш SHA-256 назад у початковий текст. Якщо потрібне оборотне кодування, використайте кодувальник Base64 або декодувальник Base64.
- Не ідеально для паролів. Звичайний SHA-256 швидкий, що робить його вразливим до атак методом перебору та райдужних таблиць при зберіганні паролів. Для цієї мети використовуйте солені та навмисно повільні алгоритми (bcrypt, scrypt, Argon2).
- Регістр дайджеста. Цей інструмент виводить шістнадцяткові символи в нижньому регістрі. Дайджести у верхньому регістрі еквівалентні —
Aіaпозначають одне значення. Більшість інструментів порівняння приймають обидва варіанти, але деякі чутливі до регістру. - Вибір алгоритму хешування. SHA-256 наразі безпечний і не зламаний. Старіші алгоритми — ні: для сумісності із застарілими системами ви можете ще зустрічати хеш MD5, але він криптографічно зламаний і ніколи не повинен використовуватися у цілях безпеки.
- Довгі вхідні дані. SHA-256 визначений для повідомлень довжиною до \(2^{64}-1\) бітів (близько 2 ексабайтів), що значно перевищує будь-який практичний текстовий ввід. Довжина входу не змінює розмір результату — він завжди становить рівно 64 шістнадцяткові символи.
Типові випадки використання цього калькулятора
- Створення контрольних сум для порівняння коротких рядків або фрагментів конфігурації.
- Перевірка, що текст введено точно (наприклад, API-ключі, ліцензійні рядки, відповіді на іспитах).
- Швидке створення унікального ідентифікатора або відбитка для фрагмента тексту.
- Відтворення хешів зі статей, CTF-завдань і вправ із програмування.
Якщо ви працюєте з закодованим або перетвореним текстом, вам також можуть стати в пригоді конвертер hex або лічильник символів для перевірки вхідних даних перед хешуванням.
Часті запитання
Як обчислити SHA-256 вручну чи в коді?
Вручну хеш майже ніхто не обчислює — алгоритм передбачає 64 раунди побітових циклічних зсувів і модульних додавань на кожен 512-бітовий блок. У коді використовуйте вбудовані бібліотеки: hashlib.sha256() у Python, crypto.createHash('sha256') у Node.js, hash('sha256', $data) у PHP або sha256sum у терміналі Linux. Цей калькулятор зручний, коли у вас немає доступу до терміналу або потрібна швидка візуальна перевірка.
Чи можуть два різні тексти мати однаковий хеш SHA-256?
Теоретично так — будь-яка функція, що відображає нескінченну кількість входів на скінченну множину з 2256 результатів, мусить мати колізії. На практиці жодної колізії ніколи не було знайдено, а перебір для її пошуку на поточному обладнанні тривав би довше за вік Всесвіту. Саме тому SHA-256 досі вважають надійним для перевірки файлів, сертифікатів і Bitcoin.
Чи оборотний SHA-256? Чи можна розкодувати хеш назад у текст?
Ні. SHA-256 — це одностороння функція: результат втрачає інформацію, тож багато входів відповідають кожному дайджесту, і операції розшифрування не існує. «Зворотні» сайти працюють лише шляхом вгадування входів і перевірки, чи збігається їхній хеш. Якщо потрібне оборотне перетворення, використовуйте інструменти кодування, як-от Base64 — але ніколи не вважайте кодування засобом безпеки.
Чому мій хеш не збігається з очікуваним значенням?
Найпоширеніші причини — невидимі відмінності у вхідних даних: завершальний розрив рядка, завершальний пробіл, різні типи завершення рядків (CRLF проти LF) або символи Unicode, що виглядають однаково, але відрізняються (типографські та прямі лапки). Також перевірте кодування символів — цей інструмент хешує байти UTF-8 — і те, чи очікуваний дайджест не був у верхньому регістрі, що еквівалентно, але може не пройти порівняння, чутливе до регістру.
Яка різниця між SHA-256, SHA-1 і MD5?
Усі три — хеш-функції, але з різними розмірами результату та рівнями безпеки. MD5 (128 бітів) і SHA-1 (160 бітів) вважаються зламаними — для обох існують практичні атаки на колізії, тож їх не можна використовувати для безпеки. Для SHA-256 (256 бітів) практичних атак не відомо, і він є чинним стандартом для сертифікатів, підписів і контрольних сум. Для всього нового обирайте SHA-256.
Чим SHA-256 відрізняється від SHA-512?
SHA-512 — це споріднений алгоритм із родини SHA-2, що дає 512-бітовий (128 шістнадцяткових символів) дайджест, використовуючи 64-бітові внутрішні слова. SHA-256 використовує 32-бітові слова та 64 раунди; SHA-512 — 64-бітові слова та 80 раундів. Обидва безпечні. На 64-бітових процесорах SHA-512 для довгих входів може бути навіть швидшим, але SHA-256 має ширшу підтримку і є типовим у більшості протоколів.
Чи можна безпечно використовувати SHA-256 для хешування паролів?
Не сам по собі звичайний SHA-256. Він швидкий, і це дозволяє зловмисникам випробовувати мільярди варіантів за секунду. Для зберігання паролів використовуйте спеціально розроблений повільний алгоритм з унікальною сіллю для кожного користувача — bcrypt, scrypt або Argon2. Звичайний SHA-256 годиться для контрольних сум і перевірки цілісності, де швидкість — це перевага, а не вада.