पासवर्ड जेनरेटर और वैलिडेशन टूल
मजबूत पासवर्ड और पासफ्रेज़ बनाएं, बैच, अद्वितीयता, सुरक्षा तीव्रता और नीति जांच के साथ समर्थन, और बहुभाषी कोड उदाहरण और व्यावहारिक ज्ञान प्रदान करें।
पासवर्ड नीति जांचकर्ता
परिणाम
- लंबाई
- लोअरकेस अक्षर
- अपरकेस अक्षर
- अंक
- प्रतीक
- क्रमिक अनुक्रम
- दोहराव
- ब्लैकलिस्ट
सभी जांच आपके ब्राउज़र में स्थानीय रूप से पूरी की जाती हैं।
पासफ्रेज जनरेटर
शब्द सुरक्षित यादृच्छिक (Web Crypto) द्वारा चुने गए हैं। दर्शनात्मक शब्द सूची आकार सीमा के कारण संक्षिप्त है।
पासवर्ड हैशिंग रेफरेंस गाइड
Argon2id
- Argon2id का उपयोग करें और उचित मेमोरी-कठिन पैरामीटर सेट करें
- समय ≥ 2 पास, मेमोरी ≥ 64MB (परिस्थिति के अनुसार अनुकूलित करें)
- प्रत्येक उपयोगकर्ता के लिए अलग साल्ट संग्रहित करें; ऐप स्तर पर pepper का उपयोग करना वैकल्पिक है
PBKDF2
- SHA-256 या SHA-512 चुनें, दोहराव ≥ 210k (आवश्यकता के अनुसार अनुकूलित करें)
- प्रत्येक हैश के लिए अद्वितीय साल्ट का उपयोग करें; पैरामीटर अपग्रेड का समर्थन करता है
- उपयोगकर्ता के अगले लॉगिन पर उच्च लागत वाले पैरामीटर पर स्थानांतरित करें
BCrypt
- लागत 10–14, सर्वर क्षमता के अनुसार
- कटौती समस्याओं से बचें; पूरे पासवर्ड का हैश बनाएं
- प्रमाणीकरण एंडपॉइंट पर लिमिटिंग और मॉनिटरिंग करें
संदर्भ: NIST SP 800-63B, OWASP ASVS। पैरामीटर को हार्डवेयर क्षमता और SLO के साथ समायोजित करना चाहिए।
पासवर्ड की ताकत का मूल्यांकन
ताकत का अनुमान एंट्रॉपी से लिया गया है: entropy = log2(अक्षर सेट का आकार) × लंबाई। बड़ा अक्षर सेट और अधिक लंबाई अनुमानित हमलों के खिलाफ अधिक प्रतिरोध प्रदान करते हैं।
- कमजोर: < 50 बिट —— केवल एक-बार उपयोग / कम महत्वपूर्ण स्थितियों के लिए उपयुक्त
- औसत: 50–80 बिट —— कम जोखिम वाले परिदृश्यों के लिए स्वीकार्य
- मजबूत: 80–110 बिट —— डिफ़ॉल्ट लक्ष्य के रूप में अनुशंसित
- अत्यधिक मजबूत: > 110 बिट —— प्रबंधक / महत्वपूर्ण खातों के लिए उपयुक्त
सुझाव: वास्तविक हमला मॉडल भिन्न हो सकते हैं; कृपया पासवर्ड का पुनरुपयोग न करें और बहु-कारक प्रमाणीकरण (MFA) सक्षम करें।
उपयोग निर्देश
- लंबाई और वर्ण सेट (छोटे/बड़े/अंक/प्रतीक) चुनें; आवश्यकता होने पर 'समान वर्ण अनदेखा करें' और 'प्रत्येक आवश्यक' सक्षम करें
- अधिक सूक्ष्म नियंत्रण के लिए: वर्ण/वर्ण समूह अपवर्जित करें या प्रतीक समूह चुनें
- जनरेट पर क्लिक करें; यदि आपको कई परिणाम चाहिए, तो बैच जनरेशन सक्षम करें और सभी को एक क्लिक में कॉपी करें
- मौजूदा पासवर्ड की जांच करने के लिए 'नीति टेस्टर' का उपयोग करें; याद रखने में आसान पासफ्रेज़ के लिए 'पासफ्रेज़ जनरेटर' का उपयोग करें
विशेषताएँ
- सुरक्षित यादृच्छिक स्रोत (Web Crypto)
- कॉन्फ़िगर करने योग्य वर्ण सेट और प्रतीक समूह
- समान वर्ण फ़िल्टरिंग और कस्टम अपवर्जन
- बैच जनरेशन, अद्वितीयता सुनिश्चित करना और डुप्लिकेट हटाने की सांख्यिकी
- तीव्रता और एंट्रॉपी माप
- नीति टेस्टर और पासफ्रेज़ जनरेटर
- बहुभाषी कोड उदाहरण (JS、Python、PHP、Go、Java、C#、Rust)
- एक क्लिक में कॉपी (एकल/सभी)
पासवर्ड ज्ञान भंडार
1) पासवर्ड मजबूती और एंट्रॉपी
- एंट्रॉपी ≈ log2(करैक्टर पूल आकार) × लंबाई; लंबाई का योगदान अक्सर अधिक होता है
- अनुशंसित लक्ष्य: सामान्य खाते ≥ 80 बिट्स; उच्च अधिकार/वित्तीय ≥ 110 बिट्स
- बड़ा करैक्टर पूल + लंबी लंबाई → अधिक अनुमान-प्रतिरोधी
2) लंबाई बनाम जटिलता
- बेकार सिंबल जोड़ने से लंबाई बढ़ाना अधिक प्रभावी है
- निश्चित, भविष्यवाणी योग्य पैटर्न से बचें (जैसे हमेशा 'पहला अक्षर बड़ा + अंत में संख्या!')
- पहले पर्याप्त लंबाई सुनिश्चित करें, फिर धीरे-धीरे करैक्टर विविधता बढ़ाएं
3) सामान्य गलतियाँ और विपरीत पैटर्न
- कीबोर्ड अनुक्रम (qwerty), दोहराए गए ब्लॉक, जन्मतिथि/वर्ष आदि आसानी से नियमों द्वारा पकड़े जाते हैं
- 'मूल पासवर्ड + वेबसाइट सफिक्स' एक विविधता है, जिससे जोखिम केंद्रित होता है और इसे अनुमान लगाना आसान होता है
- किसी भी वेबसाइट पर एक ही पासवर्ड का उपयोग न करें
4) पासवर्ड प्रबंधन के सुझाव
- पासवर्ड मैनेजर का उपयोग करें; प्रत्येक साइट के लिए अलग; महत्वपूर्ण खातों पर MFA सक्षम करें
- सार्वजनिक चैनलों पर पासवर्ड स्पष्ट रूप से भेजने से बचें; आवश्यकता होने पर 'उच्चारण-अनुकूल' पासफ्रेज का उपयोग करें
- यदि लीक या दोहराव पाया जाए, तो तुरंत बदलें और अद्वितीय बनाएं
5) पासफ्रेस (Passphrase) मार्गदर्शिका
- 4–6 शब्दों का संयोजन आमतौर पर मजबूत और याद रखने में आसान होता है
- विविध अलगकर्ता, बड़े अक्षर, और संख्याओं का उपयोग करके मजबूती और पठनीयता बढ़ाएं
- आम वाक्यांश/गीत/उद्धरणों को सीधे जोड़ने से बचें
पासवर्ड सुरक्षा अभ्यास मार्गदर्शिका
उत्तम अभ्यास
- जितना संभव हो, पर्याप्त लंबाई का उपयोग करें: सामान्य खाते के लिए 16+ और महत्वपूर्ण खाते के लिए 24+
- यदि आपको याद रखने की आवश्यकता है, तो पासफ्रेज का उपयोग करें; यादृच्छिक उच्च-शक्ति पासवर्ड को पासवर्ड मैनेजर में सहेजने की सिफारिश की जाती है
- संभव हो तो बहु-कारक प्रमाणीकरण (MFA) सक्षम करें
- अलग-अलग वेबसाइटों पर पासवर्ड दोहराएं नहीं; प्रत्येक खाते के लिए अद्वितीय पासवर्ड का उपयोग करें
एंट्रॉपी और शक्ति
एंट्रॉपी लंबाई और वर्ण सेट के आकार के आधार पर अप्रत्याशितता को दर्शाता है; अधिक बिट्स की एंट्रॉपी आमतौर पर अधिक मजबूत होती है।
- अधिकतम लाभ प्राप्त करने के लिए लंबाई बढ़ाएं
- संभव हो तो विभिन्न वर्ण सेट का उपयोग करें
- अत्यधिक वर्णों को बाहर रखने से वर्ण सेट संकुचित हो जाता है और शक्ति कम हो जाती है
नीतियाँ और बदलाव
- जटिल संरचना नियमों के बजाय लंबाई और सामान्य/रिसाव हुए पासवर्ड की सूची को अनुमति न देने पर ध्यान केंद्रित करें
- अक्सर अनिवार्य बदलाव से बचें; केवल रिसाव या जोखिम की स्थिति में ही पासवर्ड बदलें
- सामान्य/रिसाव हुए पासवर्ड को रोकने के लिए रिसाव हुए पासवर्ड सूची का उपयोग करें
पासफ्रेज
- 4–6 यादृच्छिक शब्दों का उपयोग करें और उन्हें अलगकर्ता से जोड़ें, उदाहरण के लिए lake-CARROT-planet_7
- प्रसिद्ध वाक्यांश/गीतों के उद्धरणों से बचें; यादृच्छिकता 'चतुराई' से अधिक महत्वपूर्ण है
- महत्वपूर्ण खातों के लिए, वास्तविक उच्च-एंट्रॉपी यादृच्छिक पासवर्ड को पासवर्ड मैनेजर में सहेजने की सिफारिश की जाती है
जनरेट करने की सेटिंग्स के सुझाव
- "Require each selected set" का उपयोग करके प्रत्येक वर्ग में कम से कम एक वर्ण शामिल होना सुनिश्चित करें
- "Avoid similar" अधिक पठनीयता प्रदान करता है, लेकिन वर्ण सेट के आकार में हल्की कमी आती है
- प्रतीकों को अपने लक्ष्य प्रणाली द्वारा स्वीकार्य उप-सेट तक सीमित किया जा सकता है
सर्वर पर संग्रहण
- स्पष्ट पाठ में संग्रहित न करें; मजबूत हैश (Argon2id/PBKDF2/BCrypt) का उपयोग करें और सॉल्ट के साथ जोड़ें
- उचित पैरामीटर (मेमोरी/समय/लागत) सेट करें; आवश्यकता होने पर pepper का उपयोग करें
- दर को सीमित करें और असफल प्रयासों की निगरानी करें; हमले के समय CAPTCHA या डिवाइस प्रमाणीकरण लागू करें
बहु-कारक और पुनर्प्राप्ति
- TOTP/हार्डवेयर कुंजी का उपयोग करें; SMS का उपयोग करने से बचें
- पुनर्प्राप्ति प्रक्रिया की सुरक्षा करें: बहु-कारक या ईमेल प्रमाणीकरण और शीतलन अवधि सेट करें
- बैकअप रिकवरी कोड प्रदान करें और उपयोगकर्ताओं को उन्हें सुरक्षित रखने की सलाह दें
ब्रूट फोर्स सुरक्षा
- क्रमिक देरी/लॉक और IP/डिवाइस जोखिम स्कोरिंग का उपयोग करें
- API और लॉगिन फॉर्म के लिए WAF/लिमिटिंग कॉन्फ़िगर करें
- कॉलिजन हमलों की निगरानी करें और उपयोगकर्ताओं को अद्वितीय पासवर्ड का उपयोग करने के लिए प्रोत्साहित करें
स्थानीय संग्रहण और प्रसंस्करण
- संग्रहण और स्वचालित भरण के लिए विश्वसनीय पासवर्ड मैनेजर का उपयोग करें
- पासवर्ड को चैट/ईमेल के माध्यम से स्पष्ट पाठ में साझा न करें; टीम के लिए सीक्रेट मैनेजमेंट टूल का उपयोग करें
- यदि ऑफ़लाइन रिकॉर्डिंग की आवश्यकता है, तो भौतिक सुरक्षा सुनिश्चित करें
घोषणा: यह उपकरण ब्राउज़र में स्थानीय रूप से Web Crypto का उपयोग करके पासवर्ड जनरेट करता है; कोई डेटा सर्वर पर नहीं भेजा जाता।
प्रोग्रामिंग भाषाओं के माध्यम से पासवर्ड कैसे बनाएं
JavaScript(Web Crypto)
function randomPassword(length = 16, sets = {lower:true, upper:true, digits:true, symbols:true}) {
const pools = {
lower: 'abcdefghijklmnopqrstuvwxyz',
upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
digits: '0123456789',
symbols: '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
};
let pool = '';
for (const k of Object.keys(sets)) if (sets[k]) pool += pools[k];
if (!pool) throw new Error('No charset');
const bytes = new Uint32Array(length);
crypto.getRandomValues(bytes);
let out = '';
for (let i = 0; i < length; i++) out += pool[bytes[i] % pool.length];
return out;
}
Python(secrets)
import secrets
def random_password(length=16, lower=True, upper=True, digits=True, symbols=True):
pools = {
'lower': 'abcdefghijklmnopqrstuvwxyz',
'upper': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'digits': '0123456789',
'symbols': '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
}
pool = ''.join(v for k, v in pools.items() if locals()[k])
if not pool:
raise ValueError('No charset')
return ''.join(secrets.choice(pool) for _ in range(length))
PHP(random_int)
function random_password($length = 16, $sets = ['lower'=>true,'upper'=>true,'digits'=>true,'symbols'=>true]) {
$pools = [
'lower' => 'abcdefghijklmnopqrstuvwxyz',
'upper' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'digits' => '0123456789',
'symbols' => '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
];
$pool = '';
foreach ($sets as $k => $on) if ($on) $pool .= $pools[$k];
if ($pool === '') throw new Exception('No charset');
$out = '';
for ($i = 0; $i < $length; $i++) {
$out .= $pool[random_int(0, strlen($pool)-1)];
}
return $out;
}
Go(crypto/rand)
package main
import (
"crypto/rand"
"math/big"
)
func RandomPassword(length int, pool string) (string, error) {
out := make([]byte, length)
for i := 0; i < length; i++ {
nBig, err := rand.Int(rand.Reader, big.NewInt(int64(len(pool))))
if err != nil { return "", err }
out[i] = pool[nBig.Int64()]
}
return string(out), nil
}
Java(SecureRandom)
import java.security.SecureRandom;
public class Pw {
static final String POOL = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
static final SecureRandom SR = new SecureRandom();
static String randomPassword(int length) {
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int idx = SR.nextInt(POOL.length());
sb.append(POOL.charAt(idx));
}
return sb.toString();
}
}
C#(.NET RandomNumberGenerator)
using System;
using System.Security.Cryptography;
public static class Pw {
public static string RandomPassword(int length, string pool) {
using var rng = RandomNumberGenerator.Create();
var bytes = new byte[length];
rng.GetBytes(bytes);
var chars = new char[length];
for (int i = 0; i < length; i++) {
chars[i] = pool[bytes[i] % pool.Length];
}
return new string(chars);
}
}
Rust(rand + getrandom)
use rand::rngs::OsRng;
use rand::RngCore;
fn random_password(length: usize, pool: &str) -> String {
let mut bytes = vec![0u8; length];
OsRng.fill_bytes(&mut bytes);
let chars: Vec = pool.chars().collect();
bytes
.iter()
.map(|b| chars[(*b as usize) % chars.len()])
.collect()
}
fn main() {
let pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
let pw = random_password(16, pool);
println!("{}", pw);
}