Bcrypt શું છે?
Blowfish સાઇફર પર આધારિત, Niels Provos અને David Mazières દ્વારા ડિઝાઇન કરાયેલ પાસવર્ડ-હેશિંગ ફંક્શન છે Bcrypt. MD5 અથવા SHA-256 જેવા ઝડપી ડાઇજેસ્ટથી વિપરીત, bcrypt ઇરાદાપૂર્વક ધીમું અને કમ્પ્યુટેશનલી ખર્ચાળ છે — આ ચોરાયેલા પાસવર્ડ હેશ સામે બ્રુટ-ફોર્સ હુમલાઓને અવ્યવહારુ બનાવે છે. Bcrypt આપમેળે દરેક પાસવર્ડ માટે રેન્ડમ સોલ્ટ જનરેટ કરે છે, તેથી સમાન પાસવર્ડ પણ અલગ અલગ હેશ ઉત્પન્ન કરે છે.
Bcrypt કેવી રીતે કામ કરે છે?
Bcrypt અલ્ગોરિધમ સંપૂર્ણપણે તમારા બ્રાઉઝરમાં ચાલે છે. અહીં પગલું દ્વારા પગલું શું થાય છે:
- તમારો પાસવર્ડ UTF-8 બાઇટ્સ તરીકે એન્કોડ થાય છે અને bcrypt કી શેડ્યૂલમાં ફીડ થાય છે, જે પાસવર્ડ અને સોલ્ટનો ઉપયોગ કરીને Blowfish સાઇફરના 4,184-બાઇટ P-એરે અને S-બોક્સને ઇનિશિયલાઇઝ કરે છે.
- એક રેન્ડમ 128-બિટ સોલ્ટ જનરેટ થાય છે. સોલ્ટ કી શેડ્યૂલમાં મિશ્ર થાય છે જેથી દરેક અનન્ય સોલ્ટ સમાન પાસવર્ડ માટે પણ સંપૂર્ણપણે અલગ હેશ ઉત્પન્ન કરે.
- કી શેડ્યૂલ 2^cost રાઉન્ડ માટે (દા.ત., કોસ્ટ 10 પર 2^10 = 1,024 પુનરાવૃત્તિઓ) પુનરાવર્તિત થાય છે. દરેક પુનરાવૃત્તિ સોલ્ટ અને P-એરે એન્ટ્રીઓને ફરીથી એન્ક્રિપ્ટ કરે છે, જે કોસ્ટ વધવા સાથે ગણતરીને પ્રમાણસર ધીમી બનાવે છે.
- અંતિમ આઉટપુટ
$2b$<cost>$<salt><hash>ફોર્મેટમાં 60-અક્ષરની સ્ટ્રિંગ છે, જ્યાં cost શૂન્ય-પેડેડ (દા.ત., 10), salt 22 Base64 અક્ષરો, અને hash 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 અમલીકરણનો ઉપયોગ કરીને ચાલે છે. પાસવર્ડ સંગ્રહ કરતા પહેલા હેશ કરો, હાલના હેશ ચકાસો, અને કોસ્ટ ફેક્ટરને તમારી સુરક્ષા જરૂરિયાતો સાથે મેળ કરવા ગોઠવો — એક પણ બાઇટ સર્વર પર મોકલ્યા વિના.