Bcrypt అంటే ఏమిటి?
Bcrypt అనేది పాస్వర్డ్-హ్యాషింగ్ ఫంక్షన్, దీనిని Niels Provos మరియు David Mazières Blowfish సైఫర్ ఆధారంగా రూపొందించారు. MD5 లేదా SHA-256 వంటి వేగవంతమైన డైజెస్ట్ల మాదిరిగా కాకుండా, bcrypt ఉద్దేశపూర్వకంగా నెమ్మదిగా మరియు గణనపరంగా ఖరీదైనది — ఇది దొంగిలించబడిన పాస్వర్డ్ హ్యాష్లపై బ్రూట్-ఫోర్స్ దాడులను అసాధ్యం చేస్తుంది. Bcrypt ప్రతి పాస్వర్డ్కు స్వయంచాలకంగా ర్యాండమ్ సాల్ట్ను ఉత్పత్తి చేస్తుంది, కాబట్టి ఒకే పాస్వర్డ్లు వేర్వేరు హ్యాష్లను ఉత్పత్తి చేస్తాయి.
Bcrypt ఎలా పని చేస్తుంది?
Bcrypt అల్గోరిథం పూర్తిగా మీ బ్రౌజర్లో నడుస్తుంది. దశల వారీగా ఇక్కడ వివరించబడింది:
- మీ పాస్వర్డ్ UTF-8 బైట్లుగా ఎన్కోడ్ చేయబడి bcrypt కీ షెడ్యూల్లోకి అందించబడుతుంది, ఇది పాస్వర్డ్ మరియు సాల్ట్ ఉపయోగించి Blowfish సైఫర్ యొక్క 4,184-బైట్ P-array మరియు S-బాక్స్లను ప్రారంభిస్తుంది.
- ర్యాండమ్ 128-బిట్ సాల్ట్ ఉత్పత్తి చేయబడుతుంది. సాల్ట్ కీ షెడ్యూల్లో కలపబడుతుంది, తద్వారా ప్రతి ప్రత్యేకమైన సాల్ట్ ఒకే పాస్వర్డ్ కోసం కూడా పూర్తిగా భిన్నమైన హ్యాష్ను ఉత్పత్తి చేస్తుంది.
- కీ షెడ్యూల్ 2^cost రౌండ్ల కోసం (ఉదా., కాస్ట్ 10 వద్ద 2^10 = 1,024 పునరావృత్తులు) పునరావృతమవుతుంది. ప్రతి పునరావృతం సాల్ట్ మరియు P-array ఎంట్రీలను తిరిగి ఎన్క్రిప్ట్ చేస్తుంది, కాస్ట్ పెరిగేకొద్దీ గణన మరింత నెమ్మదిగా మారుతుంది.
- తుది అవుట్పుట్
$2b$<cost>$<salt><hash>ఫార్మాట్లో 60-అక్షరాల స్ట్రింగ్, ఇక్కడ కాస్ట్ జీరో-ప్యాడ్ చేయబడింది (ఉదా., 10), సాల్ట్ 22 Base64 అక్షరాలు, మరియు హ్యాష్ 31 Base64 అక్షరాలు. - ధ్రువీకరణ కోసం, అదే అల్గోరిథం అభ్యర్థి పాస్వర్డ్ మరియు నిల్వ చేయబడిన హ్యాష్ నుండి సంగ్రహించబడిన సాల్ట్తో తిరిగి అమలు చేయబడుతుంది. ఉత్పన్నమైన హ్యాష్ నిల్వ చేయబడిన హ్యాష్తో సరిపోలితే, పాస్వర్డ్ సరైనది.
నేను ఏ కాస్ట్ ఫ్యాక్టర్ ఉపయోగించాలి?
కాస్ట్ ఫ్యాక్టర్ అనేది పునరావృత సంఖ్య యొక్క లాగరిథమ్ — కాస్ట్ 10 అంటే 2^10 = 1,024 రౌండ్లు, కాస్ట్ 12 అంటే 4,096 రౌండ్లు. మీ భద్రతా అవసరాలు మరియు హార్డ్వేర్ ఆధారంగా ఎంచుకోండి:
- కాస్ట్ 4-6 (16-64 రౌండ్లు) — డెవలప్మెంట్ మరియు పరీక్ష కోసం మాత్రమే. ప్రొడక్షన్ ఉపయోగం కోసం చాలా వేగంగా ఉంటుంది; కనీస రక్షణను అందిస్తుంది.
- కాస్ట్ 8 (256 రౌండ్లు) — క్రిటికల్ కాని అప్లికేషన్లకు కనీస స్థాయి. ఆధునిక హార్డ్వేర్పై దాదాపు 6ms.
- కాస్ట్ 10 (1,024 రౌండ్లు) — ప్రస్తుత సిఫార్సు చేయబడిన బేస్లైన్. దాదాపు 25ms పడుతుంది. చాలా వెబ్ అప్లికేషన్లకు మంచిది.
- కాస్ట్ 12 (4,096 రౌండ్లు) — అడ్మిన్ పోర్టల్స్, ఆర్థిక వ్యవస్థలు మరియు అధిక-భద్రతా అనువర్తనాలకు సిఫార్సు చేయబడింది. దాదాపు 100ms పడుతుంది.
- కాస్ట్ 14 (16,384 రౌండ్లు) — అధిక భద్రత. దాదాపు 400ms పడుతుంది. మాస్టర్ పాస్వర్డ్లు, ఎన్క్రిప్షన్ కీలు లేదా లాగిన్ లేటెన్సీ ఆమోదయోగ్యమైనప్పుడు ఉపయోగించండి.
ఈ bcrypt జనరేటర్ ఎందుకు ఉపయోగించాలి?
- మీ గోప్యత రక్షించబడుతుంది — ప్రతి పాస్వర్డ్ మీ బ్రౌజర్లో స్థానికంగా హ్యాష్ చేయబడుతుంది మరియు ఎటువంటి డేటా మీ పరికరం నుండి బయటకు వెళ్ళదు.
- మీరు రెండు మోడ్లను పక్కపక్కనే పొందుతారు: పేజీని మార్చకుండా కొత్త హ్యాష్లను జనరేట్ చేయండి లేదా ఇప్పటికే ఉన్న వాటిని ధ్రువీకరించండి.
- కాస్ట్ ఫ్యాక్టర్ 4 (వేగవంతమైన) నుండి 15 (చాలా నెమ్మదిగా) వరకు సర్దుబాటు చేయదగినది, కాబట్టి మీరు మీ అప్లికేషన్ యొక్క భద్రతా అవసరాలకు సరిపోల్చవచ్చు.
- హ్యాష్లు ప్రామాణిక
$2b$ఫార్మాట్ను ఉపయోగిస్తాయి, ఇది ప్రతి ప్రధాన భాష మరియు ఫ్రేమ్వర్క్తో పని చేస్తుంది.
Bcrypt యొక్క సాధారణ అనువర్తనాలు ఏమిటి?
పరిశ్రమలో పాస్వర్డ్ నిల్వ మరియు ధ్రువీకరణ కోసం Bcrypt విస్తృతంగా ఉపయోగించబడుతుంది:
- వెబ్ అప్లికేషన్ ప్రామాణీకరణ — డేటాబేస్లలో వినియోగదారు పాస్వర్డ్ హ్యాష్లను నిల్వ చేయడం వలన ప్లెయిన్టెక్స్ట్ పాస్వర్డ్లు ఎప్పుడూ సేవ్ చేయబడవు.
- API కీ హ్యాషింగ్ — నిల్వ చేయడానికి ముందు API రహస్యాలను హ్యాష్ చేయడం, తద్వారా డేటాబేస్ ఉల్లంఘన చెల్లుబాటు అయ్యే క్రెడెన్షియల్స్ లీక్ చేయదు.
- మైగ్రేషన్ ఆడిటింగ్ — పాత సిస్టమ్ నుండి లెగసీ పాస్వర్డ్ హ్యాష్లు ఆథ్ లేయర్ అప్గ్రేడ్ చేసిన తర్వాత కూడా వినియోగదారులను ప్రామాణీకరించగలవా అని తనిఖీ చేయడం.
Bcrypt హ్యాష్ ఎలా ఉంటుంది?
పాస్వర్డ్ hunter2 ను కాస్ట్ ఫ్యాక్టర్ 10 తో హ్యాష్ చేయడం వలన $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy వంటి స్ట్రింగ్ వస్తుంది. ఫార్మాట్ ఇలా విభజించబడుతుంది: $2b$ (అల్గోరిథం వెర్షన్), 10 (కాస్ట్ ఫ్యాక్టర్), $, తర్వాత 22 అక్షరాల సాల్ట్ మరియు 31 అక్షరాల హ్యాష్, అన్నీ Base64-ఎన్కోడ్ చేయబడ్డాయి. ర్యాండమ్ సాల్ట్ కారణంగా ఒకే పాస్వర్డ్తో ప్రతి రన్ వేర్వేరు హ్యాష్ను ఉత్పత్తి చేస్తుంది.
ఈ bcrypt జనరేటర్ పూర్తిగా మీ బ్రౌజర్లో స్వచ్ఛమైన-JavaScript అమలును ఉపయోగించి నడుస్తుంది. పాస్వర్డ్లను నిల్వ చేయడానికి ముందు హ్యాష్ చేయండి, ఇప్పటికే ఉన్న హ్యాష్లను ధ్రువీకరించండి మరియు కాస్ట్ ఫ్యాక్టర్ను మీ భద్రతా అవసరాలకు సర్దుబాటు చేయండి — ఒక్క బైట్ కూడా సర్వర్కు పంపకుండా.