SHA-1 हैश जनरेटर

किसी भी टेक्स्ट से SHA-1 हैश जेनरेट करें

इनपुट टेक्स्ट

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है

SHA-1 हैश

SHA-1 हैश यहाँ दिखाई देगा…

SHA-1 हैशिंग क्या है?

SHA-1 (Secure Hash Algorithm 1) एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन है जो किसी भी इनपुट से एक निश्चित 160-बिट (20-बाइट) डाइजेस्ट उत्पन्न करता है। NSA द्वारा प्रकाशित और NIST द्वारा 1995 में FIPS PUB 180-1 के रूप में मानकीकृत तथा बाद में RFC 3174 में प्रलेखित, SHA-1 को SHA-0 और MD5 के एक अधिक सुरक्षित उत्तराधिकारी के रूप में अभिकल्पित किया गया था। यह एल्गोरिथम इनपुट को 512-बिट खंडों में बिटवाइज़ संक्रियाओं के 80 चक्रों के माध्यम से संसाधित करता है, और एक 40-वर्णों का हेक्साडेसिमल फ़िंगरप्रिंट उत्पन्न करता है जो एक दशक से अधिक समय तक SSL/TLS, PGP, SSH और IPsec की नींव रहा।

सभी क्रिप्टोग्राफ़िक हैश फ़ंक्शनों की तरह, SHA-1 एकतरफा रूपांतरण है: इनपुट से हैश की गणना तेज़ होती है, परंतु केवल हैश से मूल इनपुट पुनः प्राप्त करना संगणनात्मक रूप से असंभव है। इनपुट में एक भी बिट का परिवर्तन पूरी तरह अलग 160-बिट डाइजेस्ट उत्पन्न करता है — इस गुण को एवलांश प्रभाव कहते हैं। SHA-1 एक मनमाने रूप से बड़े इनपुट स्थान को निश्चित 160-बिट आउटपुट पर मैप करता है, जिसका अर्थ है कि टकराव (दो भिन्न इनपुट से एक ही हैश) गणितीय रूप से अवश्यंभावी हैं। एक हैश फ़ंक्शन का सुरक्षा दावा यह है कि ऐसे टकराव खोजने के लिए लगभग 2^80 संक्रियाओं की आवश्यकता होनी चाहिए — जो आउटपुट बिट लंबाई का आधा है।

2017 में Google और CWI Amsterdam ने SHAttered आक्रमण प्रकाशित किया, जिसमें एक ही डाइजेस्ट वाली दो भिन्न PDF फ़ाइलें तैयार करके पहला व्यावहारिक SHA-1 टकराव प्रदर्शित किया गया। इस आक्रमण के लिए लगभग 2^63.1 SHA-1 संगणनाओं की आवश्यकता थी — जो सैद्धांतिक 2^80 सीमा से बहुत कम है। 2020 में Gaetan Leurent और Thomas Peyrin ने चुनित-उपसर्ग टकराव आक्रमण से लागत को लगभग 2^63.4 संक्रियाओं तक और घटा दिया। परिणामस्वरूप, सभी प्रमुख ब्राउज़र, प्रमाणपत्र प्राधिकरण और मानक निकायों ने डिजिटल हस्ताक्षर और TLS प्रमाणपत्रों के लिए SHA-1 को अप्रचलित घोषित कर दिया है। तथापि, SHA-1 गैर-सुरक्षा उद्देश्यों के लिए अभी भी उपयोग में है: Git ऑब्जेक्ट आईडी (हालाँकि Git SHA-256 में स्थानांतरित हो रहा है), पुरानी HMAC संरचनाएँ, और फ़ाइल अखंडता चेकसम जहाँ प्रतिकूल टकराव-प्रतिरोध आवश्यक नहीं है।

यह SHA-1 जनरेटर क्यों उपयोग करें?

कुछ भी इंस्टॉल किए बिना या कोड लिखे बिना तत्काल SHA-1 हैश जेनरेट करें। अपना टेक्स्ट चिपकाएँ और वास्तविक समय में 40-वर्णों का हेक्स डाइजेस्ट प्राप्त करें — पुराने चेकसम सत्यापित करने, Git आंतरिक संरचना में समस्या निवारण करने या हैश-आधारित कार्यप्रवाह परीक्षण के लिए उपयोगी।

तत्काल हैशिंग
टाइप करते समय आउटपुट अपडेट होता है। कोई बटन क्लिक नहीं, कोई प्रतीक्षा नहीं — इनपुट बदलते ही SHA-1 डाइजेस्ट वर्ण-दर-वर्ण प्रकट होता है।
🔒
गोपनीयता-प्रथम प्रसंस्करण
सभी हैशिंग Web Crypto API का उपयोग करके आपके ब्राउज़र में स्थानीय रूप से चलती है। आपका इनपुट टेक्स्ट कभी आपके डिवाइस से बाहर नहीं जाता और किसी भी सर्वर पर नहीं भेजा जाता।
📋
एक-क्लिक कॉपी
एक क्लिक से हैश क्लिपबोर्ड पर कॉपी करें। लोअरकेस और अपरकेस हेक्स आउटपुट के बीच स्विच करें — जो भी प्रारूप आपके सिस्टम को चाहिए उसके अनुसार।
🔍
कोई खाता आवश्यक नहीं
कोई पंजीकरण नहीं, कोई लॉगिन नहीं, कोई उपयोग सीमा नहीं। पृष्ठ खोलें और तुरंत हैशिंग शुरू करें। किसी भी आधुनिक ब्राउज़र वाले डिवाइस पर काम करता है।

SHA-1 के उपयोग के मामले

Git आंतरिक संरचना और समस्या निवारण
Git प्रत्येक ऑब्जेक्ट (commit, tree, blob, tag) की पहचान उसके SHA-1 हैश से करता है। Git plumbing आदेशों में समस्या निवारण करते समय, pack फ़ाइलें सत्यापित करते समय, या कस्टम Git टूलिंग लिखते समय, एक त्वरित SHA-1 जनरेटर ऑब्जेक्ट आईडी को अपेक्षित मानों से जाँचने में सहायता करता है।
पुरानी प्रणाली सत्यापन
कई पुरानी प्रणालियाँ, पैकेज रजिस्ट्री और फ़र्मवेयर अद्यतन तंत्र डाउनलोड के साथ SHA-1 चेकसम प्रकाशित करते हैं। जब SHA-256 डाइजेस्ट उपलब्ध न हो तो फ़ाइल अखंडता सत्यापित करने के लिए SHA-1 हैश जेनरेट और तुलना करें।
Subresource Integrity (SRI)
HTML script और link टैग में SRI हैश के लिए sha256 और sha384 प्राथमिक हैं, परंतु कुछ पुरानी CDN कॉन्फ़िगरेशन अभी भी SHA-1 पर निर्भर करती हैं। मौजूदा SRI विशेषताओं की जाँच या उन्हें बदलने के लिए अपेक्षित डाइजेस्ट जेनरेट करें।
QA और प्रतिगमन परीक्षण
परीक्षण चक्रों के बीच API प्रतिक्रियाओं, निर्माण कलाकृतियों या डेटाबेस स्नैपशॉट के SHA-1 हैश की तुलना करें — बड़े आउटपुट का पूर्ण बाइट-दर-बाइट अंतर किए बिना अप्रत्याशित परिवर्तन पहचानें।
डेटा अनुपालन
ETL पाइपलाइन में फ़ाइल सामग्री या डेटा अभिलेखों के SHA-1 हैश की गणना करके अनुपालन पहचानें। 160-बिट आउटपुट गैर-प्रतिकूल अनुपालन परिदृश्यों में MD5 की तुलना में अधिक मज़बूत विशिष्टता की गारंटी देता है।
अध्ययन और शिक्षा
SHA-1 एक सुप्रलेखित एल्गोरिथम है जिसमें व्यापक शैक्षणिक साहित्य उपलब्ध है। Merkle-Damgård संरचना, संदेश अनुसूचन और टकराव-प्रतिरोध क्यों विफल होता है जब आउटपुट लंबाई आधुनिक संगणन शक्ति के सापेक्ष बहुत कम हो — इसे समझने के लिए इसके साथ प्रयोग करें।

SHA-1 बनाम अन्य हैश एल्गोरिथम

SHA-1 एक 160-बिट डाइजेस्ट उत्पन्न करता है — MD5 (128 बिट) से अधिक लंबा, परंतु SHA-2 परिवार के एल्गोरिथम से काफी छोटा। नीचे दी गई तालिका प्रत्येक एल्गोरिथम के लिए डाइजेस्ट आकार, मानक और उपयुक्त उपयोग के मामलों की तुलना करती है।

एल्गोरिथमडाइजेस्ट आकारहेक्स लंबाईमानकसर्वोत्तम उपयोग
SHA-1160 bits40 hex chars1995 / RFC 3174Deprecated — legacy git commits, old TLS
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
MD5128 bits32 hex chars1992 / RFC 1321Checksums only — broken since 2004
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, alternative to SHA-2
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

SHA-1 कैसे काम करता है

SHA-1 Merkle-Damgård संरचना का अनुसरण करता है: संदेश को पैड किया जाता है, 512-बिट खंडों में विभाजित किया जाता है, और प्रत्येक खंड को बिटवाइज़ संक्रियाओं के 80 चक्रों के माध्यम से संसाधित किया जाता है जो इनपुट को खंड से व्युत्पन्न संदेश अनुसूची के साथ मिश्रित करते हैं। पाँच 32-बिट अवस्था शब्द (H0 से H4) चालू हैश अवस्था वहन करते हैं, और इन शब्दों का अंतिम संयोजन 160-बिट डाइजेस्ट उत्पन्न करता है।

Input: "hello world"
SHA-1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
(160 bits = 20 bytes = 40 hex characters)
चरणविवरण
PaddingAppend a 1-bit, then zeros, until message length is 448 mod 512. Append the original length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
ExpansionExpand each 16-word block into 80 words using a left-rotate-by-1 XOR feedback schedule.
CompressionProcess 80 rounds per block using four nonlinear functions (Ch, Parity, Maj, Parity) across rounds 0-19, 20-39, 40-59, and 60-79.
OutputConcatenate the five 32-bit state words (H0-H4) into a 160-bit (20-byte) digest, rendered as 40 hexadecimal characters.

SHA-1 और MD5 के बीच मुख्य अंतर अवस्था शब्दों की संख्या (5 बनाम 4), प्रति खंड चक्रों की संख्या (80 बनाम 64), और वाम-रोटेट फ़ीडबैक के साथ संदेश अनुसूची का उपयोग है। इन अंतरों से SHA-1 को MD5 की तुलना में बड़ा आउटपुट (160 बनाम 128 बिट) मिलता है और मूलतः अधिक सुरक्षा मार्जिन प्राप्त होता था, हालाँकि अब दोनों एल्गोरिथम टकराव-प्रतिरोध के लिए दोषपूर्ण माने जाते हैं।

कोड उदाहरण

लोकप्रिय भाषाओं और परिवेशों में SHA-1 हैश जेनरेट करने का तरीका। MD5 के विपरीत, SHA-1 ब्राउज़र Web Crypto API में उपलब्ध है, जिससे यह ब्राउज़र और Node.js दोनों परिवेशों में बाहरी लाइब्रेरी के बिना उपयोग योग्य है।

JavaScript (Web Crypto API — browser & Node.js)
// SHA-1 is available in the Web Crypto API
async function sha1(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-1', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha1('hello world')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

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

# Basic SHA-1 hash
result = hashlib.sha1(b'hello world').hexdigest()
print(result)  # → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a string (encode to bytes first)
text = 'hello world'
hashlib.sha1(text.encode('utf-8')).hexdigest()
# → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a file in chunks
with open('file.bin', 'rb') as f:
    sha1 = hashlib.sha1()
    for chunk in iter(lambda: f.read(8192), b''):
        sha1.update(chunk)
    print(sha1.hexdigest())
Go
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}
CLI (Linux / macOS)
# Using sha1sum (Linux) or shasum (macOS)
echo -n "hello world" | sha1sum
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# macOS
echo -n "hello world" | shasum -a 1
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# Hash a file
sha1sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl sha1
# → SHA1(stdin)= 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

अक्सर पूछे जाने वाले प्रश्न

क्या SHA-1 अभी भी उपयोग के लिए सुरक्षित है?
SHA-1 सुरक्षा-संवेदनशील अनुप्रयोगों के लिए सुरक्षित नहीं है। 2017 के SHAttered आक्रमण ने व्यावहारिक टकराव उत्पन्न करना प्रदर्शित किया, और 2020 के चुनित-उपसर्ग आक्रमण ने लागत को और घटा दिया। डिजिटल हस्ताक्षर, TLS प्रमाणपत्र, या किसी भी परिदृश्य जहाँ कोई प्रतिद्वंद्वी टकराने वाले इनपुट तैयार कर सके — इनके लिए SHA-256 या SHA-3 का उपयोग करें। गैर-सुरक्षा उद्देश्यों जैसे चेकसम और कैश कुंजियों के लिए जहाँ कोई प्रतिद्वंद्वी इनपुट नियंत्रित न करे, SHA-1 कार्यात्मक बना रहता है।
SHA-1 और SHA-256 में क्या अंतर है?
SHA-1 एक 160-बिट (40-हेक्स-वर्ण) डाइजेस्ट उत्पन्न करता है और टकराव आक्रमणों के प्रति संवेदनशील है। SHA-256 एक 256-बिट (64-हेक्स-वर्ण) डाइजेस्ट उत्पन्न करता है और SHA-2 परिवार से संबंधित है, जिसके कोई ज्ञात व्यावहारिक आक्रमण नहीं हैं। SHA-256 उसी हार्डवेयर पर SHA-1 से लगभग 20-30% धीमा है, परंतु अतिरिक्त 96 बिट आउटपुट और ज्ञात संरचनात्मक कमज़ोरियों का अभाव इसे किसी भी नई परियोजना के लिए डिफ़ॉल्ट अनुशंसा बनाते हैं।
Git SHA-1 क्यों उपयोग करता है?
जब Linus Torvalds ने 2005 में Git अभिकल्पित किया, SHA-1 सुरक्षित माना जाता था और सामग्री-पता योग्य भंडारण के लिए गति और टकराव-प्रतिरोध का अच्छा संतुलन प्रदान करता था। Git SHA-1 को सामग्री पहचानकर्ता के रूप में उपयोग करता है, सुरक्षा तंत्र के रूप में नहीं — यह आकस्मिक भ्रष्टाचार का पता लगाता है, प्रतिकूल छेड़छाड़ का नहीं। 2021 से Git, git-hash-function-transition योजना में वर्णित हैश विस्तार ढाँचे के माध्यम से SHA-256 में स्थानांतरित हो रहा है।
क्या SHA-1 हैश से मूल इनपुट पुनः प्राप्त किया जा सकता है?
नहीं। SHA-1 एकतरफा फ़ंक्शन है जो हैशिंग के दौरान जानकारी नष्ट कर देता है। छोटे या सामान्य इनपुट के लिए, आक्रमणकर्ता मूल सादा-पाठ खोजने हेतु रेनबो टेबल या क्रूर-बल खोज का उपयोग कर सकते हैं, परंतु यह एल्गोरिथम का उत्क्रमण नहीं है — यह इनपुट स्थान की संपूर्ण खोज है। पासवर्ड के लिए किसी भी तेज़ हैश फ़ंक्शन की जगह bcrypt, scrypt या Argon2 का उपयोग करें।
SHAttered आक्रमण कैसे काम करता है?
SHAttered आक्रमण SHA-1 संपीड़न फ़ंक्शन की संरचनात्मक कमज़ोरियों का दोहन करता है। दो भिन्न 512-बिट संदेश खंडों को सावधानीपूर्वक निर्मित करके जो एक ही मध्यवर्ती हैश अवस्था उत्पन्न करते हैं, आक्रमणकर्ताओं ने समान SHA-1 डाइजेस्ट परंतु भिन्न दृश्यमान सामग्री वाली दो PDF फ़ाइलें बनाईं। इस आक्रमण के लिए लगभग 2^63 SHA-1 संगणनाओं की आवश्यकता थी — एकल-CPU समय के लगभग 6,500 वर्ष, परंतु GPU क्लस्टर पर महीनों में संभव। बेहतर तकनीकों के साथ लागत तब से और कम हो गई है।
SHA-1 और HMAC-SHA1 में क्या अंतर है?
SHA-1 एक सामान्य हैश फ़ंक्शन है: hash = SHA1(message)। HMAC-SHA1 एक कुंजीबद्ध संदेश प्रमाणीकरण कोड है: mac = HMAC(key, message)। HMAC हैश फ़ंक्शन को एक ऐसी संरचना में लपेटता है जो लंबाई-विस्तार आक्रमणों को रोकती है और एक गुप्त कुंजी की आवश्यकता होती है। उल्लेखनीय है कि HMAC-SHA1 संदेश प्रमाणीकरण के लिए सुरक्षित माना जाता है, भले ही SHA-1 टकराव-प्रतिरोध के लिए दोषपूर्ण है — क्योंकि HMAC सुरक्षा संपीड़न फ़ंक्शन के छद्म-यादृच्छिक फ़ंक्शन गुणों पर निर्भर करती है, टकराव-प्रतिरोध पर नहीं।
फ़ाइल चेकसम के लिए SHA-1 या MD5 का उपयोग करना चाहिए?
फ़ाइल चेकसम के लिए SHA-1, MD5 की तुलना में बेहतर विकल्प है। MD5 एक 128-बिट डाइजेस्ट उत्पन्न करता है और 2004 से दोषपूर्ण है, जहाँ व्यावहारिक टकराव आक्रमण अब सेकंडों में निष्पादित किए जा सकते हैं। SHA-1 एक 160-बिट डाइजेस्ट उत्पन्न करता है और इसके टकराव आक्रमण, हालाँकि प्रदर्शित किए गए हैं, अधिक महंगे बने रहते हैं। तथापि, किसी भी नई प्रणाली के लिए SHA-256 प्राथमिकता दें — यह बिना किसी ज्ञात व्यावहारिक आक्रमण के 256-बिट डाइजेस्ट प्रदान करता है और सभी प्लेटफ़ॉर्म और भाषाओं में व्यापक रूप से समर्थित है।