વપરાશકર્તાની પુષ્ટિ કરતી વખતે અથવા તેના જેવું કંઈક કરતી વખતે તમારે ક્યારેય સાદા લખાણમાં પાસવર્ડ રાખવો જોઈએ નહીં.
ઘણી વ્યક્તિઓ સમાન પાસવર્ડનો ઉપયોગ કરતી હોવાથી, જો કોઈ હુમલાખોરને એન્ક્રિપ્ટેડ પાસવર્ડ્સનો ડેટાબેઝ મળે છે, તો તેનો ઉપયોગ સરળતાથી લિંક કરેલી વેબસાઈટ અથવા એકાઉન્ટમાં પ્રવેશવા માટે મેળ ખાતા ઈમેઈલ સાથે થઈ શકે છે અને અન્ય એકાઉન્ટ્સને ઍક્સેસ કરવાનો પ્રયાસ કરવા માટે પણ ઉપયોગમાં લઈ શકાય છે.
જ્યારે પાસવર્ડ પૂરો પાડવામાં આવે છે ત્યારે પાસવર્ડ્સ ઘણીવાર હેશ કરવામાં આવે છે. મીઠું સાથે હેશ કરવાની સલાહ આપવામાં આવે છે અને હેશ કરેલા પાસવર્ડ સાથે મીઠું રાખવાની સલાહ આપવામાં આવે છે.
મીઠું ચડાવવું એ હેશ બ્રાઉન્સ માટેની રેસીપીમાંના એક પગલા જેવું લાગે છે, પરંતુ ક્રિપ્ટોગ્રાફીમાં, તે હેશ ફંક્શનના ઇનપુટમાં રેન્ડમ ડેટા ઉમેરવાનો સંદર્ભ આપે છે જેથી ઇનપુટ્સ સમાન હોય તો પણ હેશ હંમેશા અનન્ય પરિણામ પ્રદાન કરશે.
પરિણામે, મીઠું ઉમેરીને બનાવેલ વિશિષ્ટ હેશ આપણને ઘણી હુમલા પદ્ધતિઓથી બચાવી શકે છે, જેમાં હેશ ટેબલ એસોલ્ટનો સમાવેશ થાય છે, જ્યારે શબ્દકોષ અને બ્રુટ-ફોર્સ ઑફલાઇન પ્રયાસોને દબાવી દે છે.
અહીં, કોડ સ્નિપેટ્સની મદદથી, અમે તમારા પાસવર્ડ્સને સુરક્ષિત કરવા માટે 'bcrypt' નો ઉપયોગ કેવી રીતે કરવો તે દર્શાવીશું.
તો, 'bcrypt' શું છે?
Bcrypt એ હેશિંગ લાઇબ્રેરી છે જે ઘણી ભાષાઓને સપોર્ટ કરે છે અને વિશિષ્ટ પાસવર્ડ એન્ક્રિપ્શન પ્રદાન કરે છે. તમારા પાસવર્ડની સુરક્ષા વધારવા માટે, તમારી સ્ટ્રિંગને એન્ક્રિપ્ટ કરતી વખતે તે આપમેળે વધારાના રેન્ડમ અક્ષરો (મીઠું) ઉત્પન્ન કરે છે.
તમે આવનારા શબ્દમાળામાં કેટલા વધારાના અક્ષરો ઉમેરવા માંગો છો તે નિર્ધારિત કરવાનું પણ તમે પસંદ કરી શકો છો.
bcrypt લાઇબ્રેરી માત્ર બાઇટ કોડ વાંચે છે, કાચી સ્ટ્રિંગ્સ નહીં. તેથી, એન્ક્રિપ્શન માટે bcrypt માં ઇનકમિંગ પાસવર્ડ સ્ટ્રિંગ સબમિટ કરતા પહેલા, તમારે પહેલા તેને એન્કોડ કરવું પડશે.
એન્ક્રિપ્ટિંગ અને એન્કોડિંગ એ સમાન વસ્તુઓ નથી. તે ફક્ત ખાતરી કરે છે કે એન્ક્રિપ્શન તકનીક દ્વારા આવરી લેવામાં આવે તે પહેલાં સ્ટ્રિંગ મશીન-વાંચવા યોગ્ય છે.
પાયથોનમાં પાસવર્ડ એન્ક્રિપ્ટ કરવા માટે bcrypt નો ઉપયોગ કરવો
પાયથોન bcrypt પાસવર્ડ એન્ક્રિપ્શન સરળ બનાવે છે. અમે ફ્રેમવર્કની સહાય વિના આ કરવા પર ધ્યાન કેન્દ્રિત કરીશું. પરંતુ ચિંતા કરશો નહીં, જો તમે સમજો છો કે વપરાશકર્તાના ઇનપુટ્સ કેવી રીતે સાચવવા અને તેમને ડેટાબેઝમાંથી કેવી રીતે વાંચવા, તો પ્રક્રિયા ફ્રેમવર્કમાં સમાન છે.
સ્થાપન
તમારે ફક્ત પાયથોન વર્ચ્યુઅલ એન્વાયર્નમેન્ટ સેટ કરવાની જરૂર છે અને પછી PyCharm જેવા IDE નો ઉપયોગ કરો. પછી લાઇબ્રેરીને પહેલા ઇન્સ્ટોલ કરવી આવશ્યક છે:
પાસવર્ડ એન્ક્રિપ્ટ કરી રહ્યા છીએ
ચાલો જોઈએ કે ટેક્સ્ટ ઇન્સ્ટોલ થઈ ગયા પછી તેને એન્ક્રિપ્ટ કરવા માટે bcrypt નો ઉપયોગ કેવી રીતે કરવો:
ઉપરોક્ત પાયથોન કોડ એન્ક્રિપ્ટેડ બાઈટ સ્ટ્રિંગને એક્ઝિક્યુટ કરે છે અને આઉટપુટ કરે છે. પરંતુ દરેક વખતે તમે સ્ક્રિપ્ટ ચલાવો છો, પરિણામ અલગ છે. Bcrypt આ પદ્ધતિનો ઉપયોગ કરે છે તેની ખાતરી કરવા માટે કે દરેક વપરાશકર્તા પાસે પાસવર્ડ છે જે ખાસ કરીને એન્ક્રિપ્ટેડ છે.
તે, આકસ્મિક રીતે, પાસવર્ડ એન્ક્રિપ્શન માટે છે.
Bcrypt નો ઉપયોગ કરીને પાસવર્ડ સરખામણી અને પુષ્ટિ
જો તમે હેશ કરેલ પાસવર્ડ સાચવવા માંગતા હોવ અને પછીથી તપાસો કે તે પ્રમાણીકરણ માટે વપરાશકર્તાએ સબમિટ કરેલા પાસવર્ડ સાથે મેળ ખાય છે કે કેમ તે જોવા માટે શું થશે?
તે સરળ છે. ડેટાબેઝની એન્ટ્રી (અથવા આ કિસ્સામાં મેમરીમાં) સાથે માત્ર પ્રમાણીકરણ કરતા પાસવર્ડની તુલના કરવી આવશ્યક છે.
અધિકૃત પાસવર્ડને ડેટાબેઝમાંના એક સાથે સરખાવતા પહેલા એન્કોડેડ પણ હોવો જોઈએ કારણ કે bcrypt માત્ર બાઈટ સ્ટ્રીંગ્સ વાંચી શકે છે. મૂળભૂત રીતે, તમે એન્કોડેડ ઓથેન્ટિકેશન ઇનપુટની સરખામણી તમારા ડેટાબેઝમાં હાલમાં છે તે એન્કોડેડ હેશ પાસવર્ડ સાથે કરશો.
ચાલો કાલ્પનિક પાયથોન ઇનપુટ્સનો ઉપયોગ કરીને આનું પરીક્ષણ કરીએ:
ઉપરોક્ત કોડ ચલાવવા પર, તમને નવા પાસવર્ડ માટે પૂછવામાં આવે છે. આ Python દ્વારા મેમરીમાં સાચવવામાં આવે છે. પ્રમાણીકરણ વિભાગમાં, તમે તે જ પાસવર્ડ દાખલ કરશો, જે તમારા માટે ખાનગી છે.
જો પાસવર્ડની સરખામણી કરવામાં આવે અને જે અગાઉ એન્ક્રિપ્ટેડ અને મેચ સાચવવામાં આવ્યો હોય, તો પાયથોન સફળતાનો સંદેશો બહાર કાઢે છે.
જો નહિં, તો ભૂલનો સંદેશ છાપવામાં આવે છે અને પછી બીજું વાક્ય ઉમેરવામાં આવે છે.
મૂળભૂત વિચાર રજીસ્ટર કરવા અને પછી પ્રમાણીકરણ માટે ડેટાબેઝમાં પાસવર્ડ આપવા જેવો જ છે.
ઉપસંહાર
સાદા પાયથોન શોર્ટ મેમરીમાં કેવી રીતે bcrypt કાર્ય કરે છે તે બતાવવા માટે અમે ફક્ત એનક્રિપ્ટેડ પાસવર્ડનો ઉપયોગ કર્યો હોવા છતાં, તેની વાસ્તવિક ઉપયોગિતા વપરાશકર્તા-આધારિત એપ્લિકેશન્સમાં રહે છે.
તેમ છતાં, આ લેખ વાસ્તવિક-વિશ્વના સંજોગોમાં પણ, આ પરિપૂર્ણ કરવા માટે તમારા કોડને ગોઠવવાની આવશ્યક પદ્ધતિઓ દર્શાવે છે.
દાખલા તરીકે, જો તમે ફ્લાસ્કનો ઉપયોગ કરી રહ્યાં છો, તો તમે ઇનપુટ્સને બદલે અલગ વેબ ફોર્મ દ્વારા નોંધણી અને પ્રમાણીકરણ ફીલ્ડ પ્રદાન કરી શકો છો.
અલબત્ત, પાસવર્ડ્સની સરખામણી કરતી વખતે, તમે ડેટાબેઝમાંથી વાંચશો જેમાં એનક્રિપ્ટેડ પાસવર્ડ્સ છે જે વાસ્તવિક દુનિયામાં રાખવામાં આવ્યા છે.
જોના નિત્શ
આ સરળ અને સરળ સમજૂતી માટે આભાર,
આનાથી મને મારા વર્તમાન પ્રોજેક્ટમાં ઘણી મદદ મળી.
મને લાગે છે કે તે ખૂબ જ સારું છે કે ઉદાહરણ કોડ એકદમ ન્યૂનતમ સુધી મર્યાદિત છે અને અન્ય ઘણા ખુલાસાઓની જેમ ઓવરલોડ નથી.
શ્રેષ્ઠ શુભેચ્છા