# Что такое SHA-256 на самом деле

> Cuadernos Lacre · Концепция · 19 мая 2026 г.
> https://solo2.net/ru/notebooks/articulos/what-sha-256-actually-is.html

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

---

## Простая идея за техническим названием

Представьте, что существует машина с одной прорезью и одним экраном. В прорезь вы вводите текст: слово, фразу, целый роман. На экране мгновением позже появляется последовательность ровно из шестидесяти четырех символов. Эту последовательность профессиональные читатели называют *хешем* или *криптографическим дайджестом*; для обычного читателя мы пока можем назвать ее математическим отпечатком текста, как отпечаток пальца у человека.

Если ввести один и тот же текст дважды, машина оба раза покажет одинаковый отпечаток. Если ввести слегка измененный текст — сдвинута одна запятая, заглавная буква изменена на строчную, — машина покажет отпечаток, совершенно отличный от первого. Не похожий: другой. Эти два свойства вместе — детерминированность и чувствительность — и есть простая идея. Все остальное в SHA-256 — это механизмы, которые заставляют их хорошо работать.

С самого начала стоит сказать, чего машина не делает. Она не шифрует текст. Она не прячет его. Она его не сохраняет. Машина смотрит на текст, вычисляет отпечаток и забывает текст. Отпечаток не позволяет восстановить породивший его текст; он позволяет лишь, при наличии текста-кандидата, проверить, совпадает он с оригиналом или нет. Поэтому мы говорим, что это дайджест *одностороннего действия*: туда можно, обратно — нет.

## Хеш — это не то же самое, что шифрование

Эта путаница встречается часто, и ее стоит прояснить: шифрование и хеширование — разные операции. Шифрование заключается в преобразовании текста таким образом, чтобы только владелец ключа мог вернуть его к первоначальному виду. Хеширование заключается в создании отпечатка текста, из которого исходный текст не может быть восстановлен никогда, ни с ключом, ни без него. Первое обратимо по задумке; второе необратимо по задумке.

Практическое следствие имеет значение. Когда приложение говорит «мы храним ваш пароль зашифрованным», это значит, что кто-то имеет ключ для его расшифровки — как минимум, само приложение. Когда приложение говорит «мы храним ваш пароль хешированным», само приложение не может прочитать исходный пароль, даже если захочет; оно может только проверить, дает ли введенный вами пароль тот же отпечаток. Вторая модель, при правильной реализации, гораздо предпочтительнее первой для хранения паролей. Позже мы увидим, почему «при правильной реализации» требует чего-то большего, чем просто SHA-256.

## Четыре свойства, делающие криптографический хеш полезным

Хеш-функция, заслуживающая прилагательного *криптографическая*, обладает четырьмя свойствами:

1. Детерминированность. Одинаковый ввод всегда дает одинаковый отпечаток.
2. Лавинный эффект. Небольшое изменение во вводе дает совершенно другой отпечаток, без видимого сходства с предыдущим.
3. Необратимость. Имея отпечаток, вычислительно невозможно найти породивший его текст.
4. Стойкость к коллизиям. Вычислительно невозможно найти два разных текста, которые дадут одинаковый отпечаток.

«Вычислительно невозможно» не означает «математически невозможно». Это означает, что затраты времени, энергии и денег на достижение цели на порядки превышают сумму всех разумно доступных вычислительных мощностей. Для SHA-256 этот предел измеряется тысячами миллиардов лет даже при самых оптимистичных подходах со специализированным оборудованием. Что для практических целей читателя означает то же самое, что «невозможно».

## В частности, SHA-256

Название говорит само за себя. SHA — это аббревиатура от *Secure Hash Algorithm*: алгоритм безопасного хеширования. Число 256 указывает размер отпечатка в битах: двести пятьдесят шесть бит, то есть тридцать два байта, которые в шестнадцатеричном формате представляют собой те самые шестьдесят четыре символа, которые читатель уже узнает. Стандарт был опубликован американским институтом NIST, органом, который стандартизирует такие функции, в 2001 году как часть семейства SHA-2; текущая версия стандарта, FIPS 180-4, от 2015 года.

Размеры заслуживают минуты внимания. Двести пятьдесят шесть бит дают два в степени двести пятьдесят шесть различных значений: число с семьюдесятью восемью десятичными цифрами, на несколько порядков превышающее оценочное количество атомов в наблюдаемой Вселенной. Каждый текст в мире — каждая книга, каждое электронное письмо, каждое сообщение — попадает на одно из этих значений. Вероятность того, что два разных текста совпадут случайно, в практических целях неотличима от нуля.

## Как это выглядит в коде

## Почему мы называем это сургучной печатью

В европейской переписке с пятнадцатого по девятнадцатый век письмо запечатывали сургучом. Капля расплавленного воска, прижатая сверху печать, и письмо было отмечено неповторимым образом. Это не защищало содержимое от решительного шпиона — бумагу можно было прочитать на просвет, сургуч можно было сломать, — но это делало вмешательство очевидным. Любое изменение закрытия было заметно получателю еще до вскрытия бумаги. Сургучная печать не предотвращала ущерб; она заявляла о нем.

SHA-256 тела каждого выпуска Cuadernos выполняет ту же функцию в цифровой версии. Если изменится хоть одно слово статьи между моментом ее публикации и моментом, когда вы ее читаете, шестнадцатеричная печать внизу текста больше не будет совпадать с SHA-256 текста перед вами. Любой читатель с пятью строками кода мог бы это проверить. Публикация не может переписать свою историю так, чтобы печать этого не выдала. Она не защищает от повреждений; она делает их проверяемыми.

## Чем хеш не является

Иногда от SHA-256 требуют четырех функций, которые ему не свойственны:

1. Шифровать. Хеш резюмирует; он не скрывает. Если вы хотите, чтобы текст невозможно было прочитать, вам нужно его зашифровать, а не хешировать.
2. Устанавливать авторство. Хеш не говорит, кто написал текст, только какой текст был хеширован. Чтобы связать авторство, поверх хеша нужна криптографическая подпись, а не просто сам хеш.
3. Хранить пароли. Здесь кроется ловушка, которую стоит понять. Алгоритм SHA-256 задуман как очень быстрый — что хорошо для многих задач, но плохо для этой. Злоумышленник со специализированным оборудованием может проверять миллиарды паролей в секунду против хеша SHA-256, пока не найдет ваш. Для хранения паролей следует использовать намеренно медленные функции деривации ключа, такие как Argon2, scrypt или bcrypt, в комбинации с *солью* (уникальным случайным значением для каждого пользователя, которое предотвращает совпадение хешей у двух людей с одинаковым паролем).
4. Служить идентификатором автора. Это не так. Хеш идентифицирует контент. Если два человека хешируют слово *привет* с помощью SHA-256, они оба получат одинаковый дайджест — и это главное свойство, а не недостаток: если бы дайджесты были разными, мы не могли бы проверить соответствие между опубликованным и полученным.

## Где SHA-256 встречается в вашей повседневной жизни

Даже если вы этого не видите, SHA-256 поддерживает большую часть того, чем вы ежедневно пользуетесь в интернете. Блокчейн Bitcoin строится путем связывания SHA-256 каждого блока со следующим; изменение прошлого блока заставляет пересчитывать всю последующую цепочку. Git, система контроля версий кода, используемая половиной мира, идентифицирует каждый коммит по SHA-256 (в новых версиях) или по его предшественнику SHA-1 (в старых) от его полного содержимого. HTTPS-сертификаты, подтверждающие личность веб-сайта при входе, имеют связанный с ними отпечаток SHA-256. Загрузки программного обеспечения часто сопровождаются SHA-256, публикуемым разработчиком, чтобы вы могли убедиться, что файл не был изменен по пути. И, как мы уже говорили, внизу каждого выпуска Cuadernos Lacre.

## Для профессионального читателя

Четыре оперативных напоминания для тех, кто принимает решения или проводит аудит систем:

1. Хеш — это не шифрование. Если провайдер путает эти два термина в своей технической документации, стоит спросить, что именно он имеет в виду.
2. Для хранения паролей никогда не следует использовать SHA-256 в чистом виде. SHA-256 слишком быстр для этой задачи (см. пункт 3 в *Чем хеш не является*). Современным стандартом является Argon2id: медленный по дизайну, настраиваемый в зависимости от мощности сервера, в сочетании с разной случайной *солью* для каждого пользователя.
3. Для контроля целостности документов — контрактов, досье, архивов — SHA-256 остается эталонным стандартом. Именно он используется для квалифицированных электронных меток времени в ЕС.
4. Для долгосрочного хранения (десятилетия) рекомендуется также вычислять и сохранять SHA-3 или SHA-512 вместе с SHA-256; криптографическая осмотрительность рекомендует не полагаться на одну функцию для вековых архивов.

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

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

И вот что интересно: сдвиньте всего одну костяшку на полсантиметра в сторону перед началом и снова подтолкните. Пандус, который должен был сработать, останется неподвижным, мостик не упадет, сработает другое разветвление. Финальный узор костяшек на полу будет совершенно не похож на первый.

SHA-256 — это математический аналог такой цепочки. Текст, который вы пишете, — это начальное положение костяшек. Алгоритм — это толчок, запускающий каскад. А конечный результат — то, что мы называем *хешем*, — это стоп-кадр пола, когда всё остановилось. Измените хоть одну запятую в исходном тексте, и кадр будет радикально другим. Вот так просто и так решительно.

---

*Если вы вернетесь в конец этой статьи, то увидите шестнадцатеричную печать из шестидесяти четырех символов. Это SHA-256 текста, который вы только что прочитали, на этом языке. Если бы мы перевели статью, печать была бы другой; если бы изменилось одно слово в испанской версии, испанская печать изменилась бы. Печать не защищает контент — для этого есть другие инструменты, — но она однозначно его идентифицирует. И этого, как бы скромно это ни звучало, достаточно, чтобы ни один этап издательской цепочки не мог незаметно изменить сказанное. Все остальное — шифрование, подпись, идентификация — строится поверх этой простой идеи.*

## Источники и дополнительная литература

- NIST — *FIPS PUB 180-4: Secure Hash Standard (SHS)*, август 2015 г. Официальная спецификация семейства SHA-2, включая SHA-256.
- RFC 6234 — *US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)*, IETF, май 2011 г. Нормативная версия для разработчиков.
- Ferguson, N.; Schneier, B.; Kohno, T. — *Cryptography Engineering: Design Principles and Practical Applications* (Wiley, 2010). Главы 5 и 6 посвящены хеш-функциям и их легитимному и нелегитимному использованию.
- Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Практический пример использования SHA-256 для связывания блоков в неизменяемую по определению структуру.
- Регламент (ЕС) 910/2014 (eIDAS) — основа для квалифицированных электронных меток времени. SHA-256 является эталонной функцией для квалифицированных электронных подписей и печатей, выдаваемых в ЕС.
- Эталонная реализация на Zig: std.crypto.hash.sha2.Sha256 в официальном репозитории языка (*github.com/ziglang/zig* → lib/std/crypto/sha2.zig). Это оптимизированная и проверенная версия, которую на самом деле использует Solo2. Полезна для сравнения с дидактической реализацией в приложении.

---

*Cuadernos Lacre · Издание Menzuri Gestión S.L. · текст R.Eugenio · под редакцией команды Solo2.*
*https://solo2.net/ru/notebooks/*
