Перейти до вмісту
Обране

Генератор хешів SHA-256

Оновлено:

Введіть будь-який текст і одразу отримайте його хеш SHA-256 — фіксований 256-бітовий (64 шістнадцяткові символи) дайджест. Корисно для контрольних сум, перевірки цілісності та відбитків даних.

Створити хеш SHA-256

Поля введення
Якщо увімкнено, результат оновлюватиметься автоматично після зміни будь-якого значення.

Формула хеша SHA-256

Формула
\[ \text{SHA-256}(M) = H_0^{(N)} \,\|\, H_1^{(N)} \,\|\, H_2^{(N)} \,\|\, H_3^{(N)} \,\|\, H_4^{(N)} \,\|\, H_5^{(N)} \,\|\, H_6^{(N)} \,\|\, H_7^{(N)} \] \[ H^{(0)} = (h_0, h_1, \dots, h_7), \qquad H^{(i)} = \text{compress}\!\left(H^{(i-1)}, M^{(i)}\right) \]

Де:

  • \(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

  1. Введіть або вставте свій текст у поле Текст для хешування. Приймається будь-який текст, включно з розривами рядків і символами Unicode, які обробляються як UTF-8.
  2. Обчислення виконується автоматично — натискати кнопку не потрібно. Результат одразу з’являється під полем Результат хешування.
  3. Скопіюйте значення Хеш SHA-256 (64-символьний шістнадцятковий рядок) за допомогою кнопки копіювання та використайте його там, де потрібно.
  4. Щоб отримати хеш іншого тексту, просто замініть вхідні дані — хеш оновлюється в реальному часі.

Що таке 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 годиться для контрольних сум і перевірки цілісності, де швидкість — це перевага, а не вада.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *