مولّد تجزئة SHA-384
إنشاء تجزئة 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 — لكنها تبدأ بمجموعة مختلفة من قيم التجزئة الأولية (مشتقة من الأعداد الأولية من التاسع حتى السادس عشر) ولا تُخرج سوى أول 384 بت من الحالة النهائية. هذا الاختصار يعني أن SHA-384 تُنتج ملخصاً مختلفاً عن SHA-512 للمدخلات ذاتها، رغم أنهما يشتركان في نفس الخوارزمية الأساسية.
نظراً لعمل SHA-384 على كلمات 64 بت، تعمل بسرعة أعلى من SHA-256 على المعالجات الحديثة ذات 64 بت مع تقديم ملخص أكبر. يجعلها ذلك خياراً وسطاً عملياً: أقوى من SHA-256 (192 بت من مقاومة التصادم مقابل 128 بت) دون عبء التخزين المرتبط بمخرج SHA-512 المكوّن من 128 حرفاً سداسياً. SHA-384 هي التجزئة الافتراضية لتوقيعات التحقق من الشهادات في TLS 1.3 وتشترطها NSA Suite B (المعروفة الآن بـ CNSA) للبيانات السرية للغاية.
لماذا تستخدم هذا المولّد أونلاين؟
يستلزم إنشاء تجزئات SHA-384 عادةً أمر طرفية أو كتابة كود. تتيح لك هذه الأداة المبنية على المتصفح حساب ملخصات SHA-384 فوراً دون تثبيت أي شيء أو إرسال بيانات إلى خادم. سواء احتجت إلى إنشاء تجزئة SRI لأصل CDN، أو التحقق من مجموع اختباري لملف، أو مقارنة مخرج SHA-384 بـ SHA-256 للمدخل ذاته، توفر لك هذه الأداة طريقة فورية وخالية من الاعتماديات للعمل مع ملخصات SHA-384 في أي متصفح حديث.
حالات استخدام مولّد تجزئة SHA-384
مقارنة متغيرات عائلة SHA-2
تنتمي SHA-384 إلى عائلة SHA-2 جنباً إلى جنب مع عدة متغيرات أخرى. يوضح الجدول أدناه الفروق بينها من حيث حجم الملخص وطول المخرج والتطبيقات الأكثر شيوعاً.
| المتغير | حجم الملخص | طول السداسي العشري | الحجم بالبايت | الأنسب لـ |
|---|---|---|---|---|
| SHA-384 | 384 bits | 96 hex chars | 48 bytes | TLS 1.2/1.3, government/CNSA, certificate signatures |
| SHA-256 | 256 bits | 64 hex chars | 32 bytes | TLS, blockchain, code signing, JWTs, SRI |
| SHA-512 | 512 bits | 128 hex chars | 64 bytes | Digital signatures, HMAC with large keys |
| SHA-224 | 224 bits | 56 hex chars | 28 bytes | Truncated SHA-256 — rare, specific compliance |
| SHA-512/256 | 256 bits | 64 hex chars | 32 bytes | SHA-512 speed on 64-bit CPUs, 256-bit output |
SHA-384 مقابل SHA-256 مقابل SHA-512 مقابل SHA-3-384
يعتمد الاختيار بين SHA-384 وخوارزميات التجزئة الأخرى على متطلبات الأمان وقيود المنصة واحتياجات الأداء. تشمل هذه المقارنة الخصائص الأكثر أهمية.
| الخاصية | SHA-384 | SHA-256 | SHA-512 | SHA-3-384 |
|---|---|---|---|---|
| Digest size | 384 bits (96 hex) | 256 bits (64 hex) | 512 bits (128 hex) | 384 bits (96 hex) |
| Internal state | 512 bits (8x64-bit) | 256 bits (8x32-bit) | 512 bits (8x64-bit) | 1600 bits (sponge) |
| Block size | 1024 bits | 512 bits | 1024 bits | 832 bits |
| Rounds | 80 | 64 | 80 | 24 |
| Word size | 64 bits | 32 bits | 64 bits | N/A (sponge) |
| Length extension | Resistant | Vulnerable | Vulnerable | Resistant |
| 64-bit performance | Fast (native ops) | Slower (32-bit ops) | Fast (native ops) | Moderate |
| Standard | FIPS 180-4 | FIPS 180-4 | FIPS 180-4 | FIPS 202 |
| Web Crypto API | Yes | Yes | Yes | No |
كيف تعمل SHA-384 داخلياً؟
تعالج SHA-384 المدخل عبر بناء Merkle–Damgård ذاته الذي تستخدمه SHA-512. يُرفَّد المدخل ليكون مضاعفاً لـ 1024 بت، ثم يُقسَّم إلى كتل، وتمر كل كتلة بـ 80 جولة خلط تستخدم دوال Ch وMaj وSigma بحساب على كلمات 64 بت. الفارق الجوهري عن SHA-512 يكمن في قيم التجزئة الأولية: تستخدم SHA-384 قيماً مشتقة من الأجزاء الكسرية للجذور التربيعية للأعداد الأولية من التاسع حتى السادس عشر، بينما تستخدم SHA-512 الأعداد الأولية الثمانية الأولى. بعد معالجة جميع الكتل، تقتطع SHA-384 الحالة الداخلية البالغة 512 بت إلى أول 384 بت منها.
SHA-384: fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd
(384 bits = 48 bytes = 96 hex characters)
يعني الاختصار والتهيئة المختلفة أن SHA-384 وSHA-512 تُنتجان دائماً ملخصات مختلفة للمدخل ذاته. يجعل ذلك SHA-384 مقاومةً بطبيعتها لهجمات تمديد الطول، خلافاً لـ SHA-256 وSHA-512 اللتين يستطيع فيهما المهاجم إلحاق بيانات وحساب تجزئة صالحة دون معرفة الرسالة الأصلية.
أمثلة كود SHA-384
تدعم SHA-384 بشكل أصلي في جميع اللغات وبيئات التشغيل الرئيسية. فيما يلي أمثلة عملية يمكنك نسخها مباشرةً في مشاريعك.
// 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"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())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
}# 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