SHA-384 Hash Generator

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

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

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

SHA-384-хеш

SHA-384-хеш появится здесь…

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

SHA-384 — криптографическая хеш-функция, определённая в NIST FIPS 180-4 в составе семейства SHA-2. Она принимает входные данные произвольной длины и вычисляет фиксированный 384-битный (48-байтовый) дайджест сообщения, который принято отображать в виде 96-символьной шестнадцатеричной строки. SHA-384 широко применяется в наборах шифров TLS, подписях цифровых сертификатов и государственных системах, требующих более высокого запаса устойчивости к коллизиям по сравнению с SHA-256.

Внутренне SHA-384 является усечённым вариантом SHA-512. Он использует те же размер блока в 1024 бита, 80 раундов сжатия и 64-битную арифметику слов, что и SHA-512, однако начинает с другого набора начальных значений хеша (производных от 9-го по 16-й простых чисел) и выводит лишь первые 384 бита итогового состояния. Такое усечение означает, что SHA-384 даёт дайджест, отличный от SHA-512 для идентичных входных данных, несмотря на использование одного базового алгоритма.

Поскольку SHA-384 оперирует 64-битными словами, он работает быстрее SHA-256 на современных 64-битных процессорах, обеспечивая при этом более длинный дайджест. Это делает его практическим компромиссом: он надёжнее SHA-256 (192-битная устойчивость к коллизиям против 128-битной) без накладных расходов на хранение 128-символьного hex-вывода SHA-512. SHA-384 является хешем по умолчанию для подтверждения подписи сертификата в TLS 1.3 и обязателен в NSA Suite B (ныне CNSA) для данных с грифом «Совершенно секретно».

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

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

Мгновенные вычисления в браузере
Вставьте текст и получите 96-символьный SHA-384-хеш немедленно. Web Crypto API выполняет вычисление нативно в вашем браузере без каких-либо внешних зависимостей.
🔒
Хеширование с приоритетом конфиденциальности
Ваши данные никогда не покидают устройство. Всё хеширование выполняется локально через Web Crypto API — никаких запросов к серверу, никаких журналов, никакого хранения данных.
📋
Готовые форматы вывода для копирования
Переключайтесь между строчным и прописным hex-выводом одним кликом. Копируйте хеш в буфер обмена для использования в файлах контрольных сумм, конфигурациях или документации.
🔍
Без регистрации и установки
Работает в любом современном браузере — Chrome, Firefox, Safari, Edge. Не требует регистрации, расширений и настройки CLI.

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

Проверка TLS-сертификатов
TLS 1.2 и 1.3 используют SHA-384 при проверке подписей сертификатов и в PRF (псевдослучайной функции). Вычисляйте SHA-384-дайджесты для сверки отпечатков сертификатов с ожидаемыми значениями в ходе аудита безопасности.
Целостность подресурсов (SRI)
Генерируйте SHA-384-хеши для JavaScript- и CSS-файлов, загружаемых с CDN. Атрибут integrity в тегах script и link использует Base64-кодированный SHA-384 по умолчанию в большинстве SRI-генераторов.
Государственные и соответствующие нормативным требованиям системы
CNSA (ранее NSA Suite B) предписывает SHA-384 для защиты секретной информации. Генерируйте хеши для проверки целостности документов в процессах обеспечения соответствия, требующих алгоритмов FIPS 180-4.
Проверка целостности файлов
Вычисляйте SHA-384-контрольные суммы для образов прошивок, выпусков программного обеспечения или конфигурационных файлов. Сравнивайте хеш до и после передачи для обнаружения повреждений или подмены.
Формирование ключей HMAC-SHA384
SHA-384 применяется совместно с HMAC для аутентификации сообщений в протоколах IPsec и TLS. Используйте этот инструмент для проверки ожидаемых хеш-значений при отладке реализаций HMAC-SHA384.
Учебные упражнения по криптографии
Студенты, изучающие семейство SHA-2, могут сравнить вывод SHA-384 с SHA-256 и SHA-512 для одних и тех же входных данных, чтобы наблюдать, как различные начальные векторы и усечение дают несхожие дайджесты.

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

SHA-384 входит в семейство SHA-2 наряду с несколькими другими вариантами. В таблице ниже показаны их различия по размеру дайджеста, длине вывода и типичным областям применения.

ВариантДайджестДлина в hexБайтыОптимален для
SHA-384384 bits96 hex chars48 bytesTLS 1.2/1.3, government/CNSA, certificate signatures
SHA-256256 bits64 hex chars32 bytesTLS, blockchain, code signing, JWTs, SRI
SHA-512512 bits128 hex chars64 bytesDigital signatures, HMAC with large keys
SHA-224224 bits56 hex chars28 bytesTruncated SHA-256 — rare, specific compliance
SHA-512/256256 bits64 hex chars32 bytesSHA-512 speed on 64-bit CPUs, 256-bit output

SHA-384 vs SHA-256 vs SHA-512 vs SHA-3-384

Выбор между SHA-384 и другими алгоритмами хеширования определяется требованиями к безопасности, ограничениями платформы и потребностями в производительности. В данном сравнении рассматриваются наиболее значимые свойства.

СвойствоSHA-384SHA-256SHA-512SHA-3-384
Digest size384 bits (96 hex)256 bits (64 hex)512 bits (128 hex)384 bits (96 hex)
Internal state512 bits (8x64-bit)256 bits (8x32-bit)512 bits (8x64-bit)1600 bits (sponge)
Block size1024 bits512 bits1024 bits832 bits
Rounds80648024
Word size64 bits32 bits64 bitsN/A (sponge)
Length extensionResistantVulnerableVulnerableResistant
64-bit performanceFast (native ops)Slower (32-bit ops)Fast (native ops)Moderate
StandardFIPS 180-4FIPS 180-4FIPS 180-4FIPS 202
Web Crypto APIYesYesYesNo

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

SHA-384 обрабатывает входные данные через ту же конструкцию Меркле–Дамгарда, что и SHA-512. Данные дополняются до кратного 1024 битам, разбиваются на блоки, и каждый блок проходит 80 раундов перемешивания с использованием функций Ch, Maj и двух функций Sigma с 64-битной арифметикой слов. Ключевое отличие от SHA-512 — начальные значения хеша: SHA-384 использует значения, производные от дробных частей квадратных корней 9-го по 16-е простых чисел, тогда как SHA-512 — первые 8 простых чисел. После обработки всех блоков SHA-384 усекает 512-битное внутреннее состояние до первых 384 бит.

Input: "hello world"
SHA-384: fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
(384 bits = 48 bytes = 96 hex characters)

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

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

SHA-384 поддерживается нативно во всех основных языках и средах выполнения. Ниже приведены рабочие примеры, которые можно скопировать непосредственно в свои проекты.

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

await sha384('hello world')
// → "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd"

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

# Basic SHA-384 hash
result = hashlib.sha384(b'hello world').hexdigest()
print(result)
# → "fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd"

# Hash a string with Unicode characters
text = 'café ☕'
hashlib.sha384(text.encode('utf-8')).hexdigest()
# → 96-character hex string

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

import (
    "crypto/sha512"
    "fmt"
)

func main() {
    data := []byte("hello world")
    // SHA-384 lives in the crypto/sha512 package
    hash := sha512.Sum384(data)
    fmt.Printf("%x\n", hash)
    // → fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
}
CLI (Linux / macOS)
# Using sha384sum (Linux)
echo -n "hello world" | sha384sum
# → fdbd8e75a67f29f701a4e040385e2e23...  -

# macOS
echo -n "hello world" | shasum -a 384
# → fdbd8e75a67f29f701a4e040385e2e23...  -

# Using openssl (cross-platform)
echo -n "hello world" | openssl dgst -sha384
# → SHA2-384(stdin)= fdbd8e75a67f29f701a4e040385e2e23986303ea...

# Verify a file checksum
sha384sum myfile.bin > checksum.txt
sha384sum -c checksum.txt
# → myfile.bin: OK

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

В чём разница между SHA-384 и SHA-512?
SHA-384 и SHA-512 используют одну и ту же функцию сжатия, размер блока (1024 бита) и число раундов (80). Они отличаются в двух аспектах: SHA-384 начинает с другими начальными значениями хеша (производными от простых чисел 9–16, а не 1–8) и выводит лишь первые 384 бита из 512-битного внутреннего состояния. Это означает, что они всегда дают разные дайджесты для одних и тех же входных данных.
Надёжнее ли SHA-384 по сравнению с SHA-256?
SHA-384 обеспечивает 192-битную устойчивость к коллизиям против 128-битной у SHA-256, исходя из границы атаки по дню рождения, равной половине длины дайджеста. По устойчивости к прообразам SHA-384 предлагает 384 бита против 256 бит. На практике оба алгоритма считаются надёжными для актуальных моделей угроз, однако SHA-384 обеспечивает больший запас безопасности для долгосрочной защиты данных и является обязательным по некоторым государственным стандартам.
Почему TLS использует SHA-384 вместо SHA-512?
Наборы шифров TLS, такие как TLS_AES_256_GCM_SHA384, используют SHA-384, поскольку он обеспечивает достаточную устойчивость к коллизиям (192 бита), сохраняя при этом управляемый размер дайджеста. 128-символьный hex-вывод SHA-512 создаёт накладные расходы в сообщениях рукопожатия и цепочках сертификатов без пропорционального выигрыша в безопасности для сценария TLS. SHA-384 также соответствует 192-битному уровню безопасности, обеспечиваемому AES-256.
Как SHA-384 используется в Subresource Integrity (SRI)?
Теги SRI в HTML используют формат integrity="sha384-{base64hash}" для проверки того, что скрипты и таблицы стилей, загруженные с CDN, не были изменены. Браузер вычисляет SHA-384-хеш загруженного файла и сравнивает его с ожидаемым значением. При несовпадении ресурс блокируется. SHA-384 — наиболее часто используемый алгоритм для SRI, поскольку он обеспечивает баланс между безопасностью и размером дайджеста.
Можно ли обратить SHA-384 для восстановления исходных данных?
Нет. SHA-384 — односторонняя функция по своей природе. Она обладает 384-битной устойчивостью к прообразам, то есть не существует известного способа восстановить входные данные из SHA-384-дайджеста быстрее, чем методом перебора по 2^384 возможностям. Однако короткие или предсказуемые данные (например, распространённые пароли) могут быть найдены с помощью предвычисленных радужных таблиц или атак по словарю, поэтому пароли следует хешировать специализированными алгоритмами — bcrypt или Argon2.
Поддерживается ли SHA-384 в Web Crypto API?
Да. Все современные браузеры реализуют SHA-384 через crypto.subtle.digest('SHA-384', data). Это тот же API, который использует данный инструмент. Он также доступен в Node.js 18+ и Deno. Web Crypto API возвращает ArrayBuffer, который преобразуется в hex-строку путём отображения каждого байта в двузначное шестнадцатеричное представление.
Когда следует использовать SHA-384 вместо SHA-256?
Используйте SHA-384, когда ваша политика безопасности требует более 128 бит устойчивости к коллизиям, когда необходимо соответствие CNSA/Suite B для секретных данных, или когда вы уже используете AES-256 и хотите сопоставимый 192-битный уровень безопасности. SHA-384 также работает быстрее SHA-256 на 64-битных процессорах, поскольку использует нативные 64-битные операции над словами. Для большинства веб-приложений и задач хеширования общего назначения SHA-256 остаётся стандартным выбором.