हैश आइडेंटिफायर

हैश प्रकार को लंबाई और प्रारूप द्वारा पहचानें — MD5, SHA-1, SHA-256 और अधिक

हैश स्ट्रिंग

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

हैश पहचान क्या है?

हैश पहचान वह प्रक्रिया है जिसके द्वारा यह निर्धारित किया जाता है कि किस क्रिप्टोग्राफ़िक हैश एल्गोरिदम ने किसी दिए गए डाइजेस्ट को उत्पन्न किया। MD5, SHA-1, और SHA-256 जैसे क्रिप्टोग्राफ़िक हैश फ़ंक्शन प्रत्येक निश्चित लंबाई के आउटपुट उत्पन्न करते हैं, और यही आउटपुट लंबाई किसी अज्ञात हैश की पहचान के लिए प्राथमिक संकेत होती है। जब आप किसी डेटाबेस डंप, कॉन्फ़िगरेशन फ़ाइल, या API प्रतिक्रिया में कोई हेक्साडेसिमल स्ट्रिंग देखते हैं, तो हैश पहचानकर्ता उपकरण आपको बताता है कि किस एल्गोरिदम ने संभवतः उसे उत्पन्न किया।

प्रत्येक हैश एल्गोरिदम मनमाने इनपुट डेटा को एक निश्चित आकार के आउटपुट में परिवर्तित करता है, जिसे डाइजेस्ट कहते हैं। MD5 सदैव 128 बिट्स (32 हेक्स वर्ण) उत्पन्न करता है, SHA-1 सदैव 160 बिट्स (40 हेक्स वर्ण), और SHA-256 सदैव 256 बिट्स (64 हेक्स वर्ण) उत्पन्न करता है। यह निश्चायक आउटपुट लंबाई ही एल्गोरिदम-आधारित पहचान को मूल इनपुट या हैशिंग कोड तक पहुँच के बिना भी संभव बनाती है।

केवल लंबाई के आधार पर पहचान सदैव निर्णायक नहीं होती। कई एल्गोरिदम एक ही आउटपुट आकार साझा करते हैं — उदाहरण के लिए, SHA-256 और SHA3-256 दोनों 64-वर्ण के हेक्स डाइजेस्ट उत्पन्न करते हैं। ऐसे मामलों में, हैश पहचानकर्ता प्रचलन के अनुसार क्रमबद्ध संभावित एल्गोरिदम की सूची प्रदान करता है। स्रोत प्रणाली, एन्कोडिंग प्रारूप (हेक्स बनाम Base64), और एल्गोरिदम उपसर्गों की उपस्थिति (जैसे bcrypt के लिए '$2b$') जैसे संदर्भ सुराग संभावनाओं को और सीमित करते हैं।

हैश पहचानकर्ता का उपयोग क्यों करें?

सुरक्षा ऑडिट, डेटाबेस स्थानांतरण, और फ़ोरेंसिक विश्लेषण के दौरान अज्ञात हैश नियमित रूप से सामने आते हैं। हैश पहचानकर्ता अनुमान की आवश्यकता को समाप्त करता है और कुछ ही क्षणों में सही एल्गोरिदम की ओर संकेत करता है।

तत्काल पहचान
कोई हैश चिपकाएँ और संभावित एल्गोरिदम तुरंत प्राप्त करें। वर्णों को हाथ से गिनने या संदर्भ तालिकाएँ देखने की कोई आवश्यकता नहीं — उपकरण स्वचालित रूप से हेक्स लंबाई को सभी संगत एल्गोरिदम से मैप करता है।
🔒
गोपनीयता-प्रथम विश्लेषण
सभी पहचान प्रक्रिया पूरी तरह आपके ब्राउज़र में JavaScript के माध्यम से चलती है। हैश मान कभी भी आपके डिवाइस से बाहर नहीं जाता, जो पासवर्ड हैश, प्रमाणीकरण टोकन, या संवेदनशील फ़ोरेंसिक साक्ष्य के विश्लेषण के समय महत्वपूर्ण है।
📋
संपूर्ण एल्गोरिदम कवरेज
MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, और उनके SHA-3 समकक्षों की पहचान करता है। संदर्भ तालिका में संपूर्ण SHA-2 और SHA-3 परिवार के साथ-साथ RIPEMD-160 और BLAKE2 जैसे सामान्य विकल्प भी शामिल हैं।
🚫
न खाता, न इंस्टॉलेशन
किसी भी आधुनिक ब्राउज़र में तत्काल कार्य करता है। न पंजीकरण, न API कुंजी, न कोई CLI उपकरण इंस्टॉल करने की आवश्यकता। इसे बुकमार्क करें और जब भी कोई अज्ञात हैश मिले तब उपयोग करें — किसी भी ऑपरेटिंग सिस्टम पर, किसी भी डिवाइस पर।

हैश पहचानकर्ता के उपयोग के मामले

सुरक्षा ऑडिटिंग
पेनिट्रेशन परीक्षण के दौरान, लीक हुए डेटाबेस में पासवर्ड हैश एल्गोरिदम की पहचान करने से क्रैकिंग का तरीका निर्धारित होता है। MD5 और SHA-1 हैश कमज़ोर सुरक्षा का संकेत देते हैं और उन्हें उपचार के लिए प्राथमिकता दी जा सकती है।
डेटाबेस स्थानांतरण
प्रणालियों के बीच उपयोगकर्ता रिकॉर्ड स्थानांतरित करते समय, नई प्रमाणीकरण परत को सही ढंग से कॉन्फ़िगर करने के लिए संग्रहीत पासवर्ड हैश एल्गोरिदम ज्ञात होना आवश्यक है। एल्गोरिदम की गलत पहचान से सभी लॉगिन विफल हो जाते हैं।
DevOps और CI/CD
बिल्ड पाइपलाइन में प्रायः आर्टिफ़ैक्ट सत्यापन के लिए चेकसम शामिल होते हैं। यह पहचानना कि कोई चेकसम SHA-256 है या SHA-512, यह सुनिश्चित करता है कि आप अपनी डिप्लॉयमेंट स्क्रिप्ट में सही सत्यापन आदेश का उपयोग करें।
डिजिटल फ़ोरेंसिक
फ़ोरेंसिक परीक्षक फ़ाइल अखंडता लॉग, ब्लॉकचेन रिकॉर्ड, और साक्ष्य मेटाडेटा में हैश डाइजेस्ट से सामना करते हैं। एल्गोरिदम की पहचान करना साक्ष्य श्रृंखला-अभिरक्षा के सत्यापन के लिए एक पूर्वापेक्षा है।
API एकीकरण
तृतीय-पक्ष API कभी-कभी एल्गोरिदम का दस्तावेज़ीकरण किए बिना हैश मान लौटाते हैं। प्रतिक्रिया से हैश प्रकार की पहचान करने से आप अपने वेबहुक हस्ताक्षर सत्यापन या चेकसम वैलिडेशन को सही ढंग से कॉन्फ़िगर कर सकते हैं।
क्रिप्टोग्राफ़ी सीखना
क्रिप्टोग्राफ़ी पाठ्यक्रमों में अध्ययनरत विद्यार्थी विभिन्न एल्गोरिदम द्वारा उत्पन्न हैश चिपका सकते हैं और एल्गोरिदम चुनाव, आउटपुट लंबाई, और सुरक्षा गुणों के बीच संबंध तुरंत देख सकते हैं।

हैश एल्गोरिदम लंबाई संदर्भ

नीचे दी गई तालिका प्रत्येक सामान्य हैश एल्गोरिदम को उसके आउटपुट आकार — बिट्स, हेक्स वर्णों, और कच्चे बाइट्स में — से मैप करती है। यह हैश पहचान उपकरणों द्वारा उपयोग की जाने वाली प्राथमिक खोज तालिका है। जब कई एल्गोरिदम एक ही हेक्स लंबाई साझा करते हैं, तो उन्हें अलग करने के लिए अतिरिक्त संदर्भ की आवश्यकता होती है।

एल्गोरिदमबिट्सहेक्स वर्णबाइट्सटिप्पणियाँ
MD51283216Broken — collisions trivial since 2004
SHA-11604020Deprecated — SHAttered attack (2017)
SHA-2242245628Truncated SHA-256; rarely used standalone
SHA-2562566432Current standard; TLS, Git, Bitcoin
SHA-3843849648Truncated SHA-512; CNSA Suite approved
SHA-51251212864Maximum SHA-2 output; large-data hashing
SHA3-2562566432Keccak-based; NIST alternative to SHA-2
SHA3-51251212864Keccak-based; highest SHA-3 strength
RIPEMD-1601604020Used in Bitcoin address derivation
BLAKE2s2566432Faster than SHA-256; 256-bit output

हैश लंबाई की अस्पष्टता दूर करना

कुछ हेक्स लंबाइयाँ कई एल्गोरिदम से संगत होती हैं। सबसे सामान्य दो अस्पष्टताएँ हैं: 64-वर्ण हैश (SHA-256 बनाम SHA3-256) और 40-वर्ण हैश (SHA-1 बनाम RIPEMD-160)। जब केवल लंबाई अपर्याप्त हो, तो उन्हें अलग करने का तरीका यहाँ दिया गया है।

64 हेक्स वर्ण: SHA-256 बनाम SHA3-256
दोनों 256-बिट (64-वर्ण) डाइजेस्ट उत्पन्न करते हैं। SHA-256 व्यवहार में अत्यधिक अधिक प्रचलित है — Git कमिट, TLS प्रमाणपत्र, Bitcoin ब्लॉक, और अधिकांश API हस्ताक्षर SHA-256 का उपयोग करते हैं। SHA3-256 सामान्यतः केवल उन प्रणालियों में पाया जाता है जिन्हें स्पष्ट रूप से NIST SP 800-185 अनुपालन या Keccak-आधारित निर्माण की आवश्यकता होती है। पुष्टि के लिए स्रोत प्रणाली का दस्तावेज़ीकरण देखें।
40 हेक्स वर्ण: SHA-1 बनाम RIPEMD-160
SHA-1 कहीं अधिक प्रचलित 160-बिट हैश है — ऐतिहासिक रूप से Git (SHA-256 संक्रमण से पहले), TLS, और कोड साइनिंग में उपयोग किया जाता था। RIPEMD-160 मुख्यतः Bitcoin पते के उत्पादन में आता है (HASH160 = SHA-256 के बाद RIPEMD-160)। यदि हैश क्रिप्टोकरेंसी संदर्भ से है, तो RIPEMD-160 पर विचार करें; अन्यथा SHA-1 अधिक संभावित विकल्प है।

कोड उदाहरण

नीचे चार प्रोग्रामिंग भाषाओं में हेक्स लंबाई द्वारा हैश पहचान के कार्यशील कार्यान्वयन दिए गए हैं। प्रत्येक फ़ंक्शन हेक्स एन्कोडिंग को सत्यापित करता है, वर्ण गणना देखता है, और सभी संगत एल्गोरिदम लौटाता है।

JavaScript
function identifyHash(hex) {
  const len = hex.length
  const isHex = /^[0-9a-fA-F]+$/.test(hex)
  if (!isHex) return ['Not a hex-encoded hash']

  const map = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
  }
  return map[len] || [`Unknown (${len} hex chars)`]
}

identifyHash('d41d8cd98f00b204e9800998ecf8427e')
// → ["MD5"]

identifyHash('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
// → ["SHA-256", "SHA3-256", "BLAKE2s"]
Python
import re

HASH_LENGTHS = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
}

def identify_hash(hex_string: str) -> list[str]:
    hex_string = hex_string.strip()
    if not re.fullmatch(r'[0-9a-fA-F]+', hex_string):
        return ['Not a hex-encoded hash']
    return HASH_LENGTHS.get(len(hex_string), [f'Unknown ({len(hex_string)} hex chars)'])

identify_hash('da39a3ee5e6b4b0d3255bfef95601890afd80709')
# → ['SHA-1', 'RIPEMD-160']

identify_hash('a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a')
# → ['SHA-256', 'SHA3-256', 'BLAKE2s']
Go
package main

import (
	"fmt"
	"regexp"
)

var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")

var hashLengths = map[int][]string{
	32:  {"MD5"},
	40:  {"SHA-1", "RIPEMD-160"},
	56:  {"SHA-224", "SHA3-224"},
	64:  {"SHA-256", "SHA3-256", "BLAKE2s"},
	96:  {"SHA-384", "SHA3-384"},
	128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}

func identifyHash(hex string) []string {
	if !hexPattern.MatchString(hex) {
		return []string{"Not a hex-encoded hash"}
	}
	if algos, ok := hashLengths[len(hex)]; ok {
		return algos
	}
	return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}

func main() {
	fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
	// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"

if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
  echo "Not a hex-encoded hash"
  exit 1
fi

len=${#hash}
case $len in
  32)  echo "MD5 (128-bit)" ;;
  40)  echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
  56)  echo "SHA-224 or SHA3-224 (224-bit)" ;;
  64)  echo "SHA-256 or SHA3-256 (256-bit)" ;;
  96)  echo "SHA-384 or SHA3-384 (384-bit)" ;;
  128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
  *)   echo "Unknown hash length: $len chars" ;;
esac

# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)

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

हैश पहचान कैसे कार्य करती है?
हैश पहचान मुख्यतः हेक्स-एन्कोडेड डाइजेस्ट की लंबाई पर निर्भर करती है। प्रत्येक हैश एल्गोरिदम निश्चित संख्या में आउटपुट बिट्स उत्पन्न करता है: MD5 128 बिट्स (32 हेक्स वर्ण), SHA-1 160 बिट्स (40 हेक्स वर्ण), SHA-256 256 बिट्स (64 हेक्स वर्ण) आउटपुट करता है, इत्यादि। पहचानकर्ता स्ट्रिंग लंबाई मापता है, सत्यापित करता है कि उसमें केवल हेक्साडेसिमल वर्ण हैं, और उसे ज्ञात एल्गोरिदम आउटपुट आकारों से मैप करता है।
क्या हैश पहचानकर्ता निश्चितता के साथ सटीक एल्गोरिदम निर्धारित कर सकता है?
हमेशा नहीं। कई एल्गोरिदम एक ही आउटपुट लंबाई उत्पन्न कर सकते हैं। SHA-256 और SHA3-256 दोनों 64 हेक्स वर्ण आउटपुट करते हैं। SHA-1 और RIPEMD-160 दोनों 40 हेक्स वर्ण आउटपुट करते हैं। ऐसे मामलों में, उपकरण सभी संभावित एल्गोरिदम लौटाता है। किसी एकल एल्गोरिदम तक सीमित करने के लिए आपको संदर्भ — स्रोत प्रणाली, दस्तावेज़ीकरण, या एल्गोरिदम उपसर्ग — की आवश्यकता होती है।
यदि मेरा हैश हेक्स के बजाय Base64-एन्कोडेड हो तो?
Base64-एन्कोडेड हैश एक भिन्न वर्ण समुच्चय (A-Z, a-z, 0-9, +, /) का उपयोग करते हैं और उनकी हेक्स समकक्षों से भिन्न लंबाई होती है। 256-बिट हैश 44 Base64 वर्ण लेकिन 64 हेक्स वर्ण होता है। पहले Base64 स्ट्रिंग को कच्चे बाइट्स में डीकोड करें, फिर बाइट लंबाई जाँचें: 16 बाइट्स = MD5, 20 बाइट्स = SHA-1, 32 बाइट्स = SHA-256, 48 बाइट्स = SHA-384, 64 बाइट्स = SHA-512।
क्या पासवर्ड हैश किसी ऑनलाइन पहचानकर्ता में चिपकाना सुरक्षित है?
यह उपकरण पूरी तरह आपके ब्राउज़र में चलता है — किसी सर्वर को कोई डेटा प्रेषित नहीं होता। हैश कभी भी आपके डिवाइस से बाहर नहीं जाता। तथापि, किसी औपचारिक ऑडिट के दौरान अधिकतम संचालन सुरक्षा के लिए, आप अपने ब्राउज़र के डेवलपर टूल में नेटवर्क टैब का निरीक्षण करके या पृष्ठ लोड होने के बाद उपकरण को ऑफ़लाइन उपयोग करके इसे सत्यापित कर सकते हैं।
MD5 अभी भी उपयोग में क्यों है यदि यह क्रिप्टोग्राफ़िक रूप से टूटा हुआ है?
MD5 संघट्ट प्रतिरोध के लिए टूटा हुआ है — एक आक्रमणकारी दो भिन्न इनपुट तैयार कर सकता है जो समान हैश उत्पन्न करें। तथापि, MD5 गैर-सुरक्षा संदर्भों में अभी भी उपयोग होता है: डाउनलोड सत्यापन के लिए फ़ाइल चेकसम, कैश कुंजियाँ, डुप्लीकेट हटाना, और HTTP में ETags। इन उद्देश्यों के लिए, आकस्मिक संघट्ट अत्यंत दुर्लभ हैं और जानबूझकर किए गए आक्रमण चिंता का विषय नहीं हैं। पासवर्ड हैशिंग, डिजिटल हस्ताक्षर, या प्रमाणपत्र सत्यापन के लिए MD5 का उपयोग नहीं किया जाना चाहिए।
मैं bcrypt, scrypt, या Argon2 हैश की पहचान कैसे करूँ?
bcrypt, scrypt, और Argon2 जैसे पासवर्ड हैशिंग फ़ंक्शन कच्चे हेक्स आउटपुट के बजाय विशिष्ट स्ट्रिंग उपसर्गों का उपयोग करते हैं। Bcrypt हैश '$2a$', '$2b$', या '$2y$' से शुरू होते हैं, जिसके बाद एक लागत कारक आता है। Argon2 हैश '$argon2id$' या '$argon2i$' से शुरू होते हैं। Scrypt हैश सामान्यतः '$scrypt$' से शुरू होते हैं। ये कच्चे क्रिप्टोग्राफ़िक डाइजेस्ट नहीं हैं, इसलिए लंबाई-आधारित पहचान लागू नहीं होती — उपसर्ग स्वयं ही एल्गोरिदम की पहचान करता है।
SHA-2 और SHA-3 में क्या अंतर है?
SHA-2 (जिसमें SHA-256, SHA-384, और SHA-512 शामिल हैं) NSA द्वारा डिज़ाइन की गई और FIPS 180-4 में मानकीकृत Merkle-Damgard निर्माण पर आधारित है। SHA-3 (SHA3-256, SHA3-384, SHA3-512) Keccak स्पंज निर्माण पर आधारित है, जिसे एक सार्वजनिक NIST प्रतिस्पर्धा के माध्यम से चुना गया और FIPS 202 में मानकीकृत किया गया। वे समान सुरक्षा स्तरों पर समान आउटपुट लंबाई उत्पन्न करते हैं, लेकिन मूलभूत रूप से भिन्न आंतरिक संरचनाओं का उपयोग करते हैं। SHA-3 को SHA-2 में संरचनात्मक कमज़ोरियाँ पाए जाने की स्थिति में एक विकल्प के रूप में तैयार किया गया था, हालाँकि ऐसी कोई कमज़ोरी अभी तक प्रदर्शित नहीं हुई है।