SHA-256 Hash Generator

Генерирует SHA-256-хеш из любого текста

Входной текст

Работает локально · Безопасно вставлять секреты

SHA-256-хеш

SHA-256-хеш будет отображен здесь…

Что такое SHA-256-хеширование?

SHA-256 (Secure Hash Algorithm 256-bit) — криптографическая хеш-функция семейства SHA-2, опубликованная NIST в 2001 году в составе FIPS 180-2 (обновлена в FIPS 180-4). Для любых входных данных — одного символа, многогигабайтного файла или пустой строки — SHA-256 вычисляет фиксированный 256-битный (32-байтовый) дайджест, который принято отображать в виде 64 шестнадцатеричных символов. SHA-256 — наиболее широко применяемая хеш-функция в production-системах: она лежит в основе цепочек TLS-сертификатов, доказательства работы Bitcoin, Subresource Integrity (SRI) и рабочих процессов подписи кода.

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

Семейство SHA-2 включает шесть вариантов: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 и SHA-512/256. SHA-256 работает с 32-битными словами и выполняет 64 раунда на блок, будучи оптимизирован для 32-битных процессоров. SHA-512 использует 64-битные слова и 80 раундов, что может обеспечивать более высокую скорость на 64-битных платформах. Для большинства задач, где достаточно 256-битного дайджеста, SHA-256 остаётся рекомендацией по умолчанию от NIST, IETF и CA/Browser Forum.

Зачем использовать онлайн-генератор SHA-256?

Генерация SHA-256-хеша обычно требует команды в терминале или нескольких строк кода. Этот браузерный инструмент позволяет вычислять SHA-256-дайджесты без установки какого-либо ПО, переключения контекста или написания скриптов.

Мгновенное хеширование в браузере
Вставьте или введите любой текст и получите SHA-256-дайджест немедленно. Web Crypto API выполняет вычисления нативно — без накладных расходов на JavaScript-библиотеки.
🔒
Приватность прежде всего
Ваши данные никогда не покидают устройство. Всё хеширование выполняется локально через встроенный в браузер Web Crypto API. Никакие данные не передаются на серверы.
📋
Готовые форматы вывода для копирования
Получите хеш в нижнем или верхнем регистре одним кликом. Удобно при сверке контрольных сумм из пакетных менеджеров, CI-конвейеров или документации.
🔍
Проверка эталонных значений
Быстро сверяйте SHA-256-дайджесты со страниц загрузки, SBOM-манифестов или журналов аудита без открытия терминала и написания разового кода.

Сценарии использования SHA-256

Frontend-разработчик — Subresource Integrity
Вычислите SHA-256-хеш скрипта или таблицы стилей, размещённых на CDN, чтобы заполнить атрибут integrity в тегах script и link — это защищает от подмены в цепочке поставок.
Backend-инженер — подпись API-запросов
Многие API (AWS Signature V4, вебхуки Stripe) требуют SHA-256-хешей тел запросов. Используйте этот инструмент для вычисления эталонных хешей в процессе разработки и отладки.
DevOps — проверка артефактов
Проверяйте SHA-256-контрольные суммы загруженных бинарных файлов, базовых образов Docker или плагинов провайдеров Terraform перед развёртыванием в производственной инфраструктуре.
QA-инженер — валидация тестовых векторов
Сверяйте результаты SHA-256 с тестовыми векторами NIST (примеры из FIPS 180-4), чтобы убедиться в корректной обработке граничных случаев вашей реализацией хеширования.
Дата-инженер — отпечатки на уровне строк
Хешируйте составные ключи или поля с персональными данными с помощью SHA-256 для создания детерминированных и необратимых отпечатков при дедупликации или псевдонимизации в конвейерах обработки данных.
Студент — учебный курс по криптографии
Поэкспериментируйте с SHA-256, чтобы наблюдать лавинный эффект: измените один символ во входных данных и посмотрите, как непредсказуемо изменится весь 64-символьный вывод.

Сравнение вариантов семейства SHA-2

SHA-256 входит в семейство SHA-2, определённое в FIPS 180-4. Каждый вариант характеризуется компромиссом между размером дайджеста, производительностью и запасом безопасности. В таблице ниже сравниваются все варианты SHA-2, с которыми вы, вероятно, столкнётесь.

ВариантРазмер дайджестаДлина в hexРазмер в байтахОптимален для
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-384384 bits96 hex chars48 bytesGovernment / CNSS, higher collision margin
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-256 против SHA-1, MD5 и SHA-3

Выбор правильного алгоритма хеширования зависит от требований к безопасности и ограничений совместимости. SHA-256 занимает практическую золотую середину: он безопасен, повсеместно поддерживается (включая Web Crypto API) и достаточно быстр для большинства задач. В сравнительной таблице ниже представлены свойства, наиболее важные при выборе хеш-функции.

СвойствоSHA-256SHA-1MD5SHA-3-256
Digest size256 bits (64 hex)160 bits (40 hex)128 bits (32 hex)256 bits (64 hex)
Security statusSecureBroken (2017)Broken (2004)Secure
Collision resistance2^128 operationsPractical attackPractical attack2^128 operations
Block size512 bits512 bits512 bits1600 bits (sponge)
Rounds64806424
StandardFIPS 180-4FIPS 180-4RFC 1321FIPS 202
Web Crypto APIYesYesNoNo
Primary use todayTLS, blockchain, SRILegacy git onlyNon-security checksumsBackup standard

Как работает SHA-256 изнутри

SHA-256 обрабатывает входные данные блоками по 512 бит (64 байта) через конструкцию Меркле–Дамгарда. Алгоритм инициализирует восемь 32-битных слов состояния (H0–H7), производных от дробных частей квадратных корней первых восьми простых чисел. Каждый блок проходит через 64 раунда перемешивания с использованием побитовых операций (AND, XOR, NOT, циклический сдвиг вправо, логический сдвиг вправо) и 64 раундовых константы, производных от кубических корней первых 64 простых чисел.

Input: "hello world"
SHA-256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
(256 bits = 32 bytes = 64 hex characters)
ШагОписание
PaddingAppend a 1-bit, then zeros until the message length is 448 mod 512. Append the original message length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
Message scheduleExpand each 16-word (32-bit) block into 64 words using sigma functions with right-rotate and right-shift operations.
CompressionProcess 64 rounds per block using Ch, Maj, and two Sigma functions with 64 round constants derived from cube roots of the first 64 primes.
OutputConcatenate the eight 32-bit state words (H0-H7) into a 256-bit (32-byte) digest, rendered as 64 hexadecimal characters.

Лавинный эффект гарантирует, что изменение одного бита во входных данных влечёт изменение примерно 50% битов в выходных. Это свойство в сочетании с устойчивостью к коллизиям уровня 2^128 объясняет, почему SHA-256 остаётся базовой рекомендацией для приложений, критичных к безопасности, в 2026 году.

Примеры кода для SHA-256

SHA-256 доступен нативно в каждом крупном языке и среде выполнения. Web Crypto API предоставляет его в браузерах без каких-либо библиотек. Приведённые ниже примеры демонстрируют реальные паттерны использования, включая обработку Unicode-ввода и хеширование файлов.

JavaScript (Web Crypto API)
// Works in all modern browsers and Node.js 18+
async function sha256(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-256', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha256('hello world')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha256').update('hello world').digest('hex')
// → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
Python
import hashlib

# Basic SHA-256 hash
result = hashlib.sha256(b'hello world').hexdigest()
print(result)  # → "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

# Hash a string (encode to bytes first)
text = 'café ☕'
hashlib.sha256(text.encode('utf-8')).hexdigest()
# → "3eb53e00aa1bb4b1e8aab1ab38e56e6b8fb0b20e1cf7e1d19f36e4fad2537445"

# Hash a file in chunks (memory-efficient)
with open('release.tar.gz', 'rb') as f:
    sha = hashlib.sha256()
    for chunk in iter(lambda: f.read(8192), b''):
        sha.update(chunk)
    print(sha.hexdigest())
Go
package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.Sum256(data)
    fmt.Printf("%x\n", hash)
    // → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
}
CLI (Linux / macOS)
# Using sha256sum (Linux) or shasum (macOS)
echo -n "hello world" | sha256sum
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# macOS
echo -n "hello world" | shasum -a 256
# → b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9  -

# Verify a file checksum
echo "b94d27b...  myfile.bin" | sha256sum -c
# → myfile.bin: OK

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha256
# → SHA2-256(stdin)= b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

Часто задаваемые вопросы

Актуален ли SHA-256 с точки зрения безопасности?
Да. По состоянию на 2026 год против полного SHA-256 не обнаружено ни одной практической атаки на коллизии, прообразы или вторые прообразы. NIST, CA/Browser Forum и IETF продолжают рекомендовать SHA-256 для TLS-сертификатов, подписи кода и цифровых подписей. Теоретическая устойчивость к коллизиям составляет 2^128 операций — значительно за пределами текущих вычислительных возможностей.
В чём разница между SHA-256 и SHA-2?
SHA-2 — семейство из шести хеш-функций: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 и SHA-512/256. SHA-256 — наиболее часто используемый член семейства. Когда в документации говорится «используйте SHA-2», это почти всегда означает именно SHA-256, если только не требуется более длинный дайджест.
Можно ли обратить SHA-256 или расшифровать его вывод?
Нет. SHA-256 — односторонняя хеш-функция, а не шифрование. Ключа и процедуры расшифровки не существует. Единственный способ найти исходные данные — атака грубой силой или по словарю, что вычислительно неосуществимо для достаточно сложных входных данных. Для коротких или предсказуемых данных (например, распространённых паролей) существуют предвычисленные радужные таблицы, поэтому хеширование паролей всегда должно использовать соль и специализированную KDF, такую как bcrypt или Argon2.
Чем SHA-256 отличается от SHA-3?
SHA-3 (Keccak, FIPS 202) использует принципиально иную внутреннюю структуру (губчатую конструкцию), чем SHA-256 (Меркле–Дамгард). Оба алгоритма — SHA-256 и SHA-3-256 — производят 256-битный дайджест и обеспечивают эквивалентную устойчивость к коллизиям. SHA-3 разрабатывался как резервный вариант на случай компрометации SHA-2, однако SHA-2 по-прежнему остаётся надёжным. SHA-256 имеет более широкую поддержку в средах выполнения: в частности, Web Crypto API поддерживает SHA-256, но не SHA-3.
Подходит ли SHA-256 для хеширования паролей?
Непосредственно — нет. Голый SHA-256-хеш пароля уязвим к атакам грубой силы и по радужным таблицам, поскольку SHA-256 спроектирован для высокой скорости. Для хранения паролей используйте специализированную функцию формирования ключей — bcrypt, scrypt или Argon2id, — которые добавляют соль и настраиваемый коэффициент работы для замедления атак.
Почему Bitcoin использует двойной SHA-256?
Bitcoin вычисляет SHA-256(SHA-256(data)) (известный как hash256) для заголовков блоков и идентификаторов транзакций. Двойное применение защищает от атак на расширение длины, при которых злоумышленник добавляет данные к сообщению и вычисляет корректный хеш, не зная исходных входных данных. Это уязвимость хешей на основе конструкции Меркле–Дамгарда, от которой однопроходный SHA-256 не защищает.
Что такое Subresource Integrity (SRI) и как SHA-256 с ним связан?
SRI — спецификация W3C, позволяющая браузерам проверять, что загруженный ресурс (скрипт, таблица стилей) не был подменён. Вы добавляете атрибут integrity, содержащий Base64-закодированный SHA-256 (или SHA-384/SHA-512) хеш ожидаемого содержимого файла. Браузер вычисляет хеш загруженного файла и отказывается выполнять его, если хеши не совпадают. SHA-256 — минимальный алгоритм, поддерживаемый SRI.