ToolDeck

تولیدکننده هش SHA-384

تولید هش SHA-384 از هر متنی

متن ورودی

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است

هش SHA-384

هش SHA-384 اینجا نمایش داده می‌شود…

هش SHA-384 چیست؟

SHA-384 یک تابع هش رمزنگاری است که در NIST FIPS 180-4 به عنوان بخشی از خانواده SHA-2 تعریف شده است. این تابع ورودی با طول دلخواه را می‌پذیرد و یک digest ثابت 384 بیتی (48 بایتی) تولید می‌کند که معمولاً به صورت یک رشته هگزادسیمال 96 کاراکتری نمایش داده می‌شود. SHA-384 به طور گسترده در cipher suiteهای TLS، امضای دیجیتال گواهی‌نامه‌ها و سیستم‌های دولتی که به حاشیه امنیتی بالاتری نسبت به SHA-256 نیاز دارند، به کار می‌رود.

در ساختار داخلی، SHA-384 یک نوع کوتاه‌شده از SHA-512 است. همان اندازه بلوک 1024 بیتی، 80 دور فشرده‌سازی و حساب اعداد 64 بیتی SHA-512 را به کار می‌برد، اما با مجموعه‌ای متفاوت از مقادیر اولیه هش (مشتق شده از اعداد اول نهم تا شانزدهم) شروع می‌کند و تنها 384 بیت اول از حالت نهایی را خروجی می‌دهد. این کوتاه‌سازی به معنای آن است که SHA-384 برای ورودی‌های یکسان، digest متفاوتی نسبت به SHA-512 تولید می‌کند، علی‌رغم اینکه هر دو از همان الگوریتم پایه استفاده می‌کنند.

از آنجا که SHA-384 روی کلمات 64 بیتی عمل می‌کند، روی پردازنده‌های مدرن 64 بیتی سریع‌تر از SHA-256 اجرا می‌شود و در عین حال digest بزرگ‌تری ارائه می‌دهد. این ویژگی آن را به یک گزینه میانی عملی تبدیل می‌کند: قوی‌تر از SHA-256 (مقاومت 192 بیتی در برابر collision در مقابل 128 بیتی) بدون سربار ذخیره‌سازی خروجی 128 کاراکتری هگز SHA-512. SHA-384 هش پیش‌فرض برای امضای تأییدیه گواهی TLS 1.3 است و توسط NSA Suite B (اکنون CNSA) برای داده‌های سری مورد نیاز است.

چرا از تولیدکننده آنلاین SHA-384 استفاده کنیم؟

تولید هش‌های SHA-384 معمولاً نیاز به دستور terminal یا نوشتن کد دارد. این ابزار مبتنی بر مرورگر به شما امکان می‌دهد digest های SHA-384 را فوراً و بدون نصب هیچ چیز یا ارسال داده به سرور محاسبه کنید. چه بخواهید یک هش SRI برای یک asset از CDN تولید کنید، checksum فایلی را تأیید کنید، یا خروجی SHA-384 را با SHA-256 برای ورودی یکسان مقایسه کنید، این ابزار روشی فوری و بدون وابستگی برای کار با digest های SHA-384 در هر مرورگر مدرنی فراهم می‌کند.

محاسبه فوری در مرورگر
متن را paste کنید و بلافاصله یک هش SHA-384 با 96 کاراکتر دریافت کنید. Web Crypto API محاسبه را به صورت بومی در مرورگر شما بدون هیچ وابستگی خارجی انجام می‌دهد.
🔒
هش‌سازی با اولویت حریم خصوصی
ورودی شما هرگز دستگاهتان را ترک نمی‌کند. تمام هش‌سازی به صورت محلی از طریق Web Crypto API اجرا می‌شود — بدون درخواست به سرور، بدون ثبت گزارش، بدون نگهداری داده.
📋
فرمت‌های خروجی آماده برای کپی
با یک کلیک بین خروجی هگز حروف کوچک و بزرگ جابجا شوید. هش را برای استفاده در فایل‌های checksum، تنظیمات یا مستندات در کلیپ‌بورد خود کپی کنید.
🔍
بدون حساب کاربری یا نصب
در هر مرورگر مدرن کار می‌کند — Chrome، Firefox، Safari، Edge. بدون ثبت‌نام، بدون افزونه، بدون نیاز به راه‌اندازی CLI.

موارد استفاده از تولیدکننده هش SHA-384

تأیید گواهی‌نامه TLS
TLS 1.2 و 1.3 از SHA-384 در تأیید امضای گواهی‌نامه و PRF (تابع شبه‌تصادفی) استفاده می‌کنند. digest های SHA-384 را برای اعتبارسنجی اثر انگشت گواهی‌نامه در برابر مقادیر مورد انتظار در طول ممیزی‌های امنیتی محاسبه کنید.
یکپارچگی زیرمنبع (SRI)
هش‌های SHA-384 را برای فایل‌های JavaScript و CSS بارگذاری شده از CDNها تولید کنید. ویژگی integrity در تگ‌های script و link به طور پیش‌فرض در اکثر تولیدکننده‌های SRI از SHA-384 رمزگذاری شده با Base64 استفاده می‌کند.
سیستم‌های دولتی و انطباق
CNSA (که قبلاً NSA Suite B نام داشت) استفاده از SHA-384 را برای حفاظت از اطلاعات طبقه‌بندی شده الزامی می‌کند. هش‌ها را برای تأیید یکپارچگی اسناد در گردش‌های کاری انطباق که به الگوریتم‌های FIPS 180-4 نیاز دارند تولید کنید.
بررسی یکپارچگی فایل
checksum های SHA-384 را برای تصاویر firmware، انتشارات نرم‌افزاری یا فایل‌های پیکربندی محاسبه کنید. هش را قبل و بعد از انتقال مقایسه کنید تا خرابی یا دستکاری شناسایی شود.
استخراج کلید HMAC-SHA384
SHA-384 با HMAC برای احراز هویت پیام در پروتکل‌هایی مانند IPsec و TLS جفت می‌شود. از این ابزار برای تأیید خروجی‌های هش مورد انتظار هنگام اشکال‌زدایی پیاده‌سازی‌های HMAC-SHA384 استفاده کنید.
تمرین‌های رمزنگاری دانشگاهی
دانشجویانی که خانواده SHA-2 را مطالعه می‌کنند می‌توانند خروجی SHA-384 را با SHA-256 و SHA-512 برای ورودی یکسان مقایسه کنند تا مشاهده کنند چگونه بردارهای اولیه متفاوت و کوتاه‌سازی، digest های مجزا تولید می‌کنند.

مقایسه انواع خانواده SHA-2

SHA-384 در کنار چندین نوع دیگر به خانواده SHA-2 تعلق دارد. جدول زیر نشان می‌دهد که آن‌ها از نظر اندازه digest، طول خروجی و کاربردهای معمول چگونه با هم تفاوت دارند.

نوعDigestطول هگزبایتبهترین استفاده
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 ورودی را از طریق همان ساختار Merkle-Damgård به کار رفته در SHA-512 پردازش می‌کند. ورودی به مضربی از 1024 بیت padding می‌شود، به بلوک‌ها تقسیم می‌شود و هر بلوک از 80 دور ترکیب با استفاده از توابع Ch، Maj و دو تابع Sigma با حساب کلمات 64 بیتی پردازش می‌شود. تفاوت اصلی با SHA-512 در مقادیر اولیه هش است: SHA-384 از مقادیر مشتق شده از بخش‌های کسری جذر اعداد اول نهم تا شانزدهم استفاده می‌کند، در حالی که SHA-512 از 8 عدد اول اول استفاده می‌کند. پس از پردازش تمام بلوک‌ها، SHA-384 حالت داخلی 512 بیتی را به 384 بیت اول کوتاه می‌کند.

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

کوتاه‌سازی و مقداردهی اولیه متفاوت به این معناست که SHA-384 و SHA-512 همیشه برای ورودی یکسان digest های متفاوتی تولید می‌کنند. این امر همچنین SHA-384 را ذاتاً در برابر حملات length-extension مقاوم می‌کند، برخلاف SHA-256 و SHA-512 که در آن‌ها یک مهاجم می‌تواند داده اضافه کند و بدون دانستن پیام اصلی یک هش معتبر محاسبه کند.

نمونه کدهای SHA-384

SHA-384 به صورت بومی در تمام زبان‌ها و runtime های اصلی پشتیبانی می‌شود. در زیر نمونه‌های کاری وجود دارد که می‌توانید مستقیماً در پروژه‌های خود کپی کنید.

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 بیتی را خروجی می‌دهد. این بدان معناست که آن‌ها همیشه برای ورودی یکسان digest های متفاوتی تولید می‌کنند.
آیا SHA-384 امن‌تر از SHA-256 است؟
SHA-384 در مقابل collision، 192 بیت مقاومت ارائه می‌دهد در مقایسه با 128 بیت SHA-256، بر اساس حد حمله birthday که نیمی از طول digest است. برای مقاومت در برابر preimage، SHA-384 در مقابل SHA-256، به ترتیب 384 بیت و 256 بیت ارائه می‌دهد. در عمل، هر دو برای مدل‌های تهدید فعلی امن تلقی می‌شوند، اما SHA-384 حاشیه امنیتی بزرگ‌تری برای حفاظت از داده‌های بلندمدت فراهم می‌کند و برخی استانداردهای دولتی آن را الزامی می‌دانند.
چرا TLS به جای SHA-512 از SHA-384 استفاده می‌کند؟
cipher suiteهای TLS مانند TLS_AES_256_GCM_SHA384 از SHA-384 استفاده می‌کنند زیرا مقاومت کافی در برابر collision (192 بیت) را فراهم می‌کند و در عین حال اندازه‌های digest را قابل مدیریت نگه می‌دارد. خروجی 128 کاراکتری هگز SHA-512 در پیام‌های handshake و زنجیره‌های گواهی‌نامه سربار اضافه می‌کند بدون اینکه مزیت امنیتی متناسبی برای موارد استفاده TLS داشته باشد. SHA-384 همچنین با سطح امنیتی 192 بیتی هدف‌گذاری شده توسط AES-256 همسو است.
SHA-384 چگونه در یکپارچگی زیرمنبع (SRI) استفاده می‌شود؟
تگ‌های SRI در HTML از فرمت integrity="sha384-{base64hash}" برای تأیید عدم تغییر اسکریپت‌ها و stylesheet های دریافت شده از CDNها استفاده می‌کنند. مرورگر هش SHA-384 فایل دانلود شده را محاسبه می‌کند و آن را با مقدار مورد انتظار مقایسه می‌کند. اگر مطابقت نداشته باشند، منبع مسدود می‌شود. SHA-384 متداول‌ترین الگوریتم مورد استفاده برای SRI است زیرا امنیت و اندازه digest را متعادل می‌کند.
آیا می‌توان SHA-384 را برای بازیابی ورودی اصلی معکوس کرد؟
خیر. SHA-384 از نظر طراحی یک تابع یک‌طرفه است. این تابع 384 بیت مقاومت در برابر preimage دارد، به این معنا که هیچ روش شناخته‌شده‌ای برای بازیابی ورودی از یک digest SHA-384 سریع‌تر از جستجوی brute-force روی 2^384 احتمال وجود ندارد. با این حال، ورودی‌های کوتاه یا قابل پیش‌بینی (مانند رمزهای عبور رایج) می‌توانند با استفاده از rainbow table های از پیش محاسبه‌شده یا حملات dictionary یافته شوند، به همین دلیل است که رمزهای عبور باید با الگوریتم‌های اختصاصی مانند 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-256 از SHA-384 استفاده کنم؟
از SHA-384 استفاده کنید وقتی سیاست امنیتی شما به بیش از 128 بیت مقاومت در برابر collision نیاز دارد، وقتی به انطباق با CNSA/Suite B برای داده‌های طبقه‌بندی شده نیاز دارید، یا وقتی در حال استفاده از AES-256 هستید و می‌خواهید سطح امنیتی 192 بیتی متناسبی داشته باشید. SHA-384 همچنین روی پردازنده‌های 64 بیتی سریع‌تر از SHA-256 اجرا می‌شود زیرا از عملیات بومی کلمات 64 بیتی استفاده می‌کند. برای اکثر برنامه‌های وب و هش‌سازی عمومی، SHA-256 همچنان انتخاب استاندارد باقی می‌ماند.