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-символьного шістнадцяткового виводу 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 — жодних запитів на сервер, жодного журналювання, жодного зберігання даних.
📋
Формати виведення, готові до копіювання
Перемикайтеся між нижнім і верхнім регістром шістнадцяткового виводу одним кліком. Скопіюйте хеш до буфера обміну для використання у файлах контрольних сум, конфігурації або документації.
🔍
Без облікового запису та встановлення
Працює у будь-якому сучасному браузері — Chrome, Firefox, Safari, Edge. Без реєстрації, розширень і налаштування CLI.

Сфери застосування SHA-384 Hash Generator

Перевірка TLS-сертифікатів
TLS 1.2 і 1.3 використовують SHA-384 для перевірки підписів сертифікатів і PRF (псевдовипадкової функції). Обчислюйте дайджести SHA-384 для перевірки відбитків сертифікатів щодо очікуваних значень під час аудитів безпеки.
Subresource Integrity (SRI)
Генеруйте хеші SHA-384 для файлів JavaScript і CSS, що завантажуються з CDN. Атрибут integrity у тегах script і link за замовчуванням використовує SHA-384 у кодуванні Base64 у більшості генераторів 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 проти SHA-256, SHA-512 та 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-символьний шістнадцятковий вивід 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, який перетворюється на шістнадцятковий рядок шляхом відображення кожного байта на його двосимвольне шістнадцяткове представлення.
Коли слід використовувати SHA-384 замість SHA-256?
Використовуйте SHA-384, якщо ваша політика безпеки вимагає більше 128 бітів стійкості до колізій, якщо потрібна відповідність CNSA/Suite B для секретних даних або якщо ви вже використовуєте AES-256 і хочете відповідний 192-бітний рівень безпеки. SHA-384 також працює швидше за SHA-256 на 64-бітних процесорах завдяки нативним 64-бітним операціям зі словами. Для більшості вебзастосунків і хешування загального призначення SHA-256 залишається стандартним вибором.