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 cipher suites, डिजिटल प्रमाणपत्र हस्ताक्षरों और सरकारी प्रणालियों में होता है जिन्हें SHA-256 की तुलना में अधिक टकराव-प्रतिरोध की आवश्यकता होती है।
आंतरिक रूप से, SHA-384, SHA-512 का एक खंडित प्रकार है। यह SHA-512 के समान 1024-बिट ब्लॉक आकार, 80 संपीड़न चक्र और 64-बिट शब्द गणित का उपयोग करता है, परंतु प्रारंभिक हैश मानों का एक भिन्न समुच्चय (9वीं से 16वीं अभाज्य संख्याओं से व्युत्पन्न) से आरंभ होता है और अंतिम अवस्था के केवल प्रथम 384 बिट आउटपुट करता है। यह छँटाई सुनिश्चित करती है कि SHA-384 एकसमान इनपुट के लिए SHA-512 से भिन्न डाइजेस्ट उत्पन्न करे, भले ही दोनों एक ही मूल एल्गोरिथम साझा करते हों।
चूँकि SHA-384 64-बिट शब्दों पर कार्य करता है, इसलिए यह आधुनिक 64-बिट प्रोसेसर पर SHA-256 की तुलना में तेज़ी से चलता है और साथ ही बड़ा डाइजेस्ट प्रदान करता है। यह इसे एक व्यावहारिक मध्यम मार्ग बनाता है: SHA-256 से अधिक सुरक्षित (192-बिट टकराव प्रतिरोध बनाम 128-बिट) जबकि SHA-512 के 128-वर्ण हेक्स आउटपुट की संग्रहण जटिलता से मुक्त। SHA-384, TLS 1.3 प्रमाणपत्र सत्यापन हस्ताक्षरों के लिए डिफ़ॉल्ट हैश है और NSA Suite B (अब CNSA) द्वारा अतिगोपनीय डेटा के लिए अनिवार्य है।
ऑनलाइन SHA-384 जनरेटर क्यों उपयोग करें?
SHA-384 हैश जेनरेट करने के लिए सामान्यतः एक टर्मिनल आदेश या कोड लिखना आवश्यक होता है। यह ब्राउज़र-आधारित टूल आपको कुछ भी इंस्टॉल किए बिना या किसी सर्वर पर डेटा भेजे बिना SHA-384 डाइजेस्ट तुरंत परिकलित करने देता है। चाहे आपको CDN संपत्ति के लिए SRI हैश जेनरेट करना हो, फ़ाइल चेकसम सत्यापित करना हो, या SHA-384 आउटपुट की SHA-256 से तुलना करनी हो — यह टूल किसी भी आधुनिक ब्राउज़र में SHA-384 डाइजेस्ट के साथ कार्य करने का तत्काल, निर्भरता-मुक्त तरीका प्रदान करता है।
SHA-384 Hash Generator के उपयोग के मामले
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, SHA-512 के समान Merkle–Damgård संरचना के माध्यम से इनपुट को संसाधित करता है। इनपुट को 1024 बिट के गुणक तक पैड किया जाता है, खंडों में विभाजित किया जाता है, और प्रत्येक खंड को 64-बिट शब्द गणित के साथ Ch, Maj और दो Sigma फ़ंक्शनों का उपयोग करते हुए मिश्रण के 80 चक्रों से गुजारा जाता है। SHA-512 से मुख्य अंतर प्रारंभिक हैश मानों में है: SHA-384 उन मानों का उपयोग करता है जो 9वीं से 16वीं अभाज्य संख्याओं के वर्गमूलों के भिन्नात्मक भागों से व्युत्पन्न हैं, जबकि SHA-512 पहली 8 अभाज्य संख्याओं का उपयोग करता है। सभी खंड संसाधित होने के बाद, 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