Toolypet
ब्लॉग पर वापस जाएं
Security

SHA-256 vs bcrypt vs Argon2 - डेवलपर्स के लिए हैशिंग एल्गोरिदम की संपूर्ण तुलना

जानें कि पासवर्ड स्टोरेज के लिए SHA-256 का उपयोग क्यों नहीं करना चाहिए, bcrypt और Argon2 के बीच अंतर, और 2026 की अनुशंसित हैशिंग रणनीति।

Toolypet Team

Toolypet Team

Development Team

8 मिनट पढ़ने का समय

SHA-256 vs bcrypt vs Argon2: कब क्या उपयोग करें?

"अगर मैं पासवर्ड को SHA-256 से हैश करके स्टोर करूं, तो यह सुरक्षित होना चाहिए, है ना?"

कई डेवलपर्स यह सवाल पूछते हैं। निष्कर्ष है: पासवर्ड के लिए SHA-256 का उपयोग नहीं करना चाहिए

यह गाइड हैशिंग एल्गोरिदम के बीच अंतर और प्रत्येक स्थिति के लिए सही विकल्प की व्याख्या करती है।


हैशिंग बनाम एन्क्रिप्शन: मूल अवधारणाएं

हैशिंग

इनपुट → हैश फ़ंक्शन → निश्चित लंबाई आउटपुट (अपरिवर्तनीय)

"password" → SHA-256 → "5e884898da28047d..."
  • एकतरफा: मूल को पुनर्प्राप्त नहीं किया जा सकता
  • निर्धारक: समान इनपुट = समान आउटपुट
  • निश्चित लंबाई: आउटपुट का आकार इनपुट आकार से स्वतंत्र

एन्क्रिप्शन

इनपुट + कुंजी → एन्क्रिप्शन → सिफरटेक्स्ट → डिक्रिप्शन + कुंजी → मूल

"password" + key → AES → "Xyz..." → AES + key → "password"
  • द्विदिश: कुंजी के साथ मूल पुनर्प्राप्त करने योग्य
  • कुंजी-निर्भर: कुंजी के बिना डिक्रिप्ट नहीं किया जा सकता

पासवर्ड स्टोरेज के लिए हैशिंग का उपयोग करें। आपको मूल की आवश्यकता नहीं है — बस इनपुट मान की तुलना हैश से करें।


हैशिंग एल्गोरिदम वर्गीकरण

तेज़ हैश

एल्गोरिदमआउटपुट लंबाईगतिउपयोग मामला
MD5128 बिटबहुत तेज़❌ सुरक्षा के लिए उपयोग न करें
SHA-1160 बिटतेज़❌ सुरक्षा के लिए उपयोग न करें
SHA-256256 बिटतेज़फ़ाइल अखंडता, डिजिटल हस्ताक्षर
SHA-512512 बिटतेज़फ़ाइल अखंडता, ब्लॉकचेन

धीमा हैश (पासवर्ड हैश)

एल्गोरिदमविशेषताएं2026 अनुशंसा
bcryptसमय समायोज्य (cost)
scryptमेमोरी-गहन
Argon2नवीनतम, OWASP #1✅✅
PBKDF2उच्च संगतता⚠️ लीगेसी

SHA-256 से पासवर्ड क्यों नहीं स्टोर करना चाहिए?

कारण 1: बहुत तेज़

SHA-256 गति के लिए डिज़ाइन किया गया है। यह फ़ाइल अखंडता जांच के लिए फायदा है, लेकिन पासवर्ड स्टोरेज के लिए घातक दोष है।

आधुनिक GPU प्रदर्शन:
- MD5: 180 अरब हैश/सेकंड
- SHA-256: 10 अरब हैश/सेकंड
- bcrypt (cost 12): 1,000 हैश/सेकंड

8-वर्ण का जटिल पासवर्ड भी SHA-256 से स्टोर करने पर मिनटों में क्रैक हो सकता है।

कारण 2: मैन्युअल Salt प्रबंधन आवश्यक

# ❌ गलत तरीका
hash = sha256(password)

# समस्या: Rainbow Table हमलों के प्रति संवेदनशील

# ⚠️ सुधार किया लेकिन अभी भी अपर्याप्त
salt = generate_random_salt()
hash = sha256(salt + password)

# समस्या: अभी भी बहुत तेज़

कारण 3: GPU त्वरण भेद्यता

SHA-256 GPU पर आसानी से समानांतर किया जाता है। हमलावर कुछ गेमिंग GPU के साथ जबरदस्त गति से हैश की गणना कर सकते हैं।


bcrypt: 27 साल का सिद्ध मानक

यह कैसे काम करता है

bcrypt(cost, salt, password) → hash

cost: गणना पुनरावृत्तियों की संख्या (2^cost)
salt: 22-वर्ण रैंडम स्ट्रिंग (स्वतः-जनरेट)

bcrypt सुरक्षित क्यों है?

  1. जानबूझकर धीमा: cost factor द्वारा गति नियंत्रित
  2. स्वचालित Salt: हर बार अलग हैश
  3. मेमोरी-गहन: GPU त्वरण मुश्किल

Cost Factor गाइड (2026)

Costहैश समयअनुशंसित उपयोग
10~100msडेवलपमेंट/टेस्टिंग
12~250msसामान्य वेब ऐप्स (अनुशंसित)
13-14~500msउच्च सुरक्षा आवश्यकताएं
15+1सेकंड+विशेष उद्देश्य

कोड उदाहरण

// Node.js with bcrypt
const bcrypt = require('bcrypt');

// हैशिंग (साइनअप)
const hash = await bcrypt.hash(password, 12); // cost 12

// सत्यापन (लॉगिन)
const isValid = await bcrypt.compare(inputPassword, storedHash);
# Python with bcrypt
import bcrypt

# हैशिंग
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))

# सत्यापन
is_valid = bcrypt.checkpw(input_password.encode(), stored_hash)

Argon2: अगली पीढ़ी का मानक

Argon2 क्या है?

2015 Password Hashing Competition का विजेता। यह OWASP द्वारा 2026 के लिए #1 अनुशंसित एल्गोरिदम है।

Argon2 वेरिएंट

वेरिएंटविशेषताएंअनुशंसा
Argon2dGPU हमला प्रतिरोधीसाइड-चैनल कमजोर
Argon2iसाइड-चैनल प्रतिरोधीGPU हमला कमजोर
Argon2idd + i हाइब्रिड✅ अनुशंसित

Argon2 पैरामीटर

Argon2id(memory, iterations, parallelism, password, salt)

- memory: मेमोरी उपयोग (KB)
- iterations: पुनरावृत्तियों की संख्या
- parallelism: समानांतर थ्रेड्स की संख्या

OWASP अनुशंसित सेटिंग्स (2026)

न्यूनतम सेटिंग्स:
- memory: 64MB (65536 KB)
- iterations: 3
- parallelism: 4

उच्च सुरक्षा:
- memory: 256MB
- iterations: 4
- parallelism: 8

कोड उदाहरण

// Node.js with argon2
const argon2 = require('argon2');

// हैशिंग
const hash = await argon2.hash(password, {
  type: argon2.argon2id,
  memoryCost: 65536, // 64MB
  timeCost: 3,
  parallelism: 4
});

// सत्यापन
const isValid = await argon2.verify(storedHash, inputPassword);
# Python with argon2-cffi
from argon2 import PasswordHasher

ph = PasswordHasher(
    memory_cost=65536,
    time_cost=3,
    parallelism=4
)

# हैशिंग
hash = ph.hash(password)

# सत्यापन
try:
    ph.verify(stored_hash, input_password)
except VerifyMismatchError:
    # पासवर्ड मेल नहीं खाता

bcrypt बनाम Argon2: किसे चुनें?

तुलना तालिका

आइटमbcryptArgon2id
आयु1999 (27 साल)2015 (11 साल)
सत्यापन27 साल फील्ड-प्रूवेनअकादमिक रूप से मान्य
मेमोरी ट्यूनिंग
GPU प्रतिरोध⚠️ मध्यम✅ मजबूत
लाइब्रेरीसभी भाषाएंअधिकांश भाषाएं
OWASP रैंकिंग#2#1

चयन गाइड

bcrypt चुनें:

  • लीगेसी सिस्टम संगतता आवश्यक
  • सिद्ध स्थिरता पसंद
  • सरल कॉन्फ़िगरेशन पसंद

Argon2id चुनें:

  • नया प्रोजेक्ट शुरू कर रहे हैं
  • नवीनतम सुरक्षा मानकों का पालन
  • उच्च GPU प्रतिरोध आवश्यक

2026 अनुशंसा क्रम (OWASP)

#1: Argon2id
#2: bcrypt
#3: scrypt
#4: PBKDF2 (जब संगतता आवश्यक हो)

SHA-256 कब उपयोग करें

SHA-256 पासवर्ड के अलावा अन्य उद्देश्यों के लिए उत्तम है।

उपयुक्त उपयोग मामले

उपयोग मामलाउदाहरण
फ़ाइल अखंडताडाउनलोड सत्यापन, बैकअप पुष्टि
डिजिटल हस्ताक्षरJWT, प्रमाणपत्र
ब्लॉकचेनबिटकॉइन माइनिंग
चेकसमडेटा ट्रांसमिशन सत्यापन
हैश टेबल(HMAC के साथ) API कुंजी स्टोरेज

कोड उदाहरण

// फ़ाइल हैश (Node.js)
const crypto = require('crypto');
const fs = require('fs');

const fileBuffer = fs.readFileSync('file.zip');
const hash = crypto.createHash('sha256').update(fileBuffer).digest('hex');

console.log(hash); // "a1b2c3d4..."

व्यावहारिक कार्यान्वयन चेकलिस्ट

पासवर्ड स्टोरेज

  • Argon2id या bcrypt का उपयोग करें
  • उचित work factor सेट करें (250-500ms)
  • लाइब्रेरी ऑटो salt जनरेशन का उपयोग करें
  • पूर्ण हैश परिणाम स्टोर करें (salt सहित)

पासवर्ड सत्यापन

  • टाइमिंग-अटैक-सेफ तुलना फ़ंक्शन का उपयोग करें
  • सत्यापन विफलता पर सुसंगत प्रतिक्रिया समय
  • असफल लॉगिन प्रयासों को सीमित करें

माइग्रेशन

  • नए हैश में क्रमिक अपग्रेड
  • सफल लॉगिन पर नए एल्गोरिदम के साथ री-हैश
  • पुराने हैश की पहचान के लिए prefix का उपयोग करें

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

Q1: MD5 से स्टोर किए गए मौजूदा पासवर्ड कैसे संभालें?

A: जब उपयोगकर्ता लॉगिन करें तो नए एल्गोरिदम से री-हैश करें।

// सफल लॉगिन पर
if (hash.startsWith('$md5$')) {
  // bcrypt से री-हैश
  const newHash = await bcrypt.hash(inputPassword, 12);
  await updateUserHash(userId, newHash);
}

Q2: क्या bcrypt की 72-बाइट सीमा समस्या नहीं है?

A: अधिकांश पासवर्ड 72 बाइट के भीतर हैं। लंबे इनपुट के लिए, पहले SHA-256 से हैश करें, फिर bcrypt लागू करें।

// लंबे पासवर्ड को संभालना
const prehash = crypto.createHash('sha256').update(password).digest('base64');
const finalHash = await bcrypt.hash(prehash, 12);

Q3: क्या उच्च cost factor आपको DoS हमलों के प्रति कमजोर नहीं बनाता?

A: हां। लॉगिन अनुरोधों पर rate limiting लागू करें। 250-500ms उचित संतुलन है।

Q4: क्या pepper आवश्यक है?

A: pepper (एप्लिकेशन-स्तर गुप्त कुंजी) अतिरिक्त सुरक्षा प्रदान करता है लेकिन आवश्यक नहीं है। केवल salt पर्याप्त है।

Q5: क्या मैं ऑनलाइन हैश टूल का उपयोग कर सकता हूं?

A: केवल सीखने/परीक्षण उद्देश्यों के लिए उपयोग करें। प्रोडक्शन में, हैशिंग सर्वर-साइड की जानी चाहिए। हैश जनरेटर सुरक्षित है क्योंकि यह 100% क्लाइंट-साइड प्रोसेस करता है।


निष्कर्ष

उपयोग मामलाअनुशंसित एल्गोरिदम
पासवर्ड स्टोरेजArgon2id > bcrypt
फ़ाइल अखंडताSHA-256
डिजिटल हस्ताक्षरSHA-256 / SHA-512
लीगेसी संगतताbcrypt / PBKDF2

मुख्य सिद्धांत:

  1. पासवर्ड के लिए कभी तेज़ हैश (SHA-256, MD5) का उपयोग न करें
  2. bcrypt cost 12+, Argon2 memory 64MB+
  3. लाइब्रेरी-प्रदत्त ऑटो salt जनरेशन का उपयोग करें

संबंधित उपकरण

उपकरणउद्देश्य
Hash GeneratorSHA-256, bcrypt हैश जनरेट करें
Password Generatorमजबूत पासवर्ड जनरेट करें
सुरक्षाहैशिंगSHA-256bcryptArgon2एन्क्रिप्शनडेवलपमेंट

लेखक के बारे में

Toolypet Team

Toolypet Team

Development Team

The Toolypet Team creates free, privacy-focused web tools for developers and designers. All tools run entirely in your browser with no data sent to servers.

Web DevelopmentCSS ToolsDeveloper ToolsSEOSecurity