ഒരു ഉപയോക്താവിനെ സ്ഥിരീകരിക്കുമ്പോഴോ സമാനമായ എന്തെങ്കിലും ചെയ്യുമ്പോഴോ നിങ്ങൾ ഒരിക്കലും ഒരു പാസ്വേഡ് പ്ലെയിൻടെക്സ്റ്റിൽ സൂക്ഷിക്കരുത്.
നിരവധി വ്യക്തികൾ ഒരേ പാസ്വേഡ് ഉപയോഗിക്കുന്നതിനാൽ, ഒരു ആക്രമണകാരി എൻക്രിപ്റ്റ് ചെയ്യാത്ത പാസ്വേഡുകളുടെ ഒരു ഡാറ്റാബേസ് കണ്ടെത്തിയാൽ, ലിങ്ക് ചെയ്ത വെബ്സൈറ്റിലേക്കോ അക്കൗണ്ടിലേക്കോ പ്രവേശിക്കുന്നതിനും മറ്റ് അക്കൗണ്ടുകൾ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുന്നതിനും അനുയോജ്യമായ ഇമെയിലുകൾക്കൊപ്പം അവ എളുപ്പത്തിൽ ഉപയോഗിക്കാനാകും.
പാസ്വേഡ് നൽകുമ്പോൾ പാസ്വേഡുകൾ പലപ്പോഴും ഹാഷ് ചെയ്യപ്പെടാറുണ്ട്. ഉപ്പ് ഉപയോഗിച്ച് ഹാഷ് ചെയ്യാനും ഹാഷ് ചെയ്ത പാസ്വേഡ് ഉപയോഗിച്ച് ഉപ്പ് ഒരുമിച്ച് സൂക്ഷിക്കാനും നിർദ്ദേശിക്കുന്നു.
ഹാഷ് ബ്രൗൺസിനുള്ള പാചകക്കുറിപ്പിലെ ഒരു ഘട്ടമായി സാൾട്ടിംഗ് തോന്നിയേക്കാം, എന്നാൽ ക്രിപ്റ്റോഗ്രാഫിയിൽ, ഇൻപുട്ടുകൾ സമാനമാണെങ്കിലും ഹാഷ് എല്ലായ്പ്പോഴും ഒരു അദ്വിതീയ ഫലം നൽകുമെന്ന് ഉറപ്പാക്കാൻ ഒരു ഹാഷ് ഫംഗ്ഷന്റെ ഇൻപുട്ടിലേക്ക് റാൻഡം ഡാറ്റ ചേർക്കുന്നതിനെയാണ് ഇത് സൂചിപ്പിക്കുന്നത്.
തൽഫലമായി, ഉപ്പ് ചേർത്തുകൊണ്ട് സൃഷ്ടിക്കുന്ന വ്യതിരിക്തമായ ഹാഷിന്, നിഘണ്ടുവിനെയും ബ്രൂട്ട്-ഫോഴ്സ് ഓഫ്ലൈൻ ശ്രമങ്ങളെയും തടസ്സപ്പെടുത്തുമ്പോൾ, ഹാഷ് ടേബിൾ ആക്രമണങ്ങൾ ഉൾപ്പെടെയുള്ള നിരവധി ആക്രമണ രീതികളിൽ നിന്ന് നമ്മെ പ്രതിരോധിക്കാൻ കഴിയും.
ഇവിടെ, കോഡ് സ്നിപ്പെറ്റുകളുടെ സഹായത്തോടെ, നിങ്ങളുടെ പാസ്വേഡുകൾ സുരക്ഷിതമാക്കാൻ 'bcrypt' എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും.
അപ്പോൾ, എന്താണ് 'bcrypt'?
നിരവധി ഭാഷകളെ പിന്തുണയ്ക്കുകയും പ്രത്യേക പാസ്വേഡ് എൻക്രിപ്ഷൻ നൽകുകയും ചെയ്യുന്ന ഒരു ഹാഷിംഗ് ലൈബ്രറിയാണ് Bcrypt. നിങ്ങളുടെ പാസ്വേഡിന്റെ സുരക്ഷ വർദ്ധിപ്പിക്കുന്നതിന്, നിങ്ങളുടെ സ്ട്രിംഗ് എൻക്രിപ്റ്റ് ചെയ്യുമ്പോൾ അത് യാന്ത്രികമായി കൂടുതൽ ക്രമരഹിതമായ പ്രതീകങ്ങൾ (ഉപ്പ്) ഉത്പാദിപ്പിക്കുന്നു.
ഒരു ഇൻകമിംഗ് സ്ട്രിംഗിലേക്ക് എത്ര അധിക പ്രതീകങ്ങൾ ചേർക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് നിർവ്വചിക്കാനും നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.
bcrypt ലൈബ്രറി ബൈറ്റ് കോഡ് മാത്രമേ വായിക്കൂ, റോ സ്ട്രിംഗുകളല്ല. അതിനാൽ, എൻക്രിപ്ഷനായി bcrypt-ലേക്ക് ഒരു ഇൻകമിംഗ് പാസ്വേഡ് സ്ട്രിംഗ് സമർപ്പിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ ആദ്യം അത് എൻകോഡ് ചെയ്യണം.
എൻക്രിപ്റ്റിംഗും എൻകോഡിംഗും ഒരേ കാര്യങ്ങളല്ല. ഒരു എൻക്രിപ്ഷൻ ടെക്നിക് ഉപയോഗിച്ച് മറയ്ക്കുന്നതിന് മുമ്പ് ഒരു സ്ട്രിംഗ് മെഷീൻ റീഡബിൾ ആണെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
പൈത്തണിൽ ഒരു പാസ്വേഡ് എൻക്രിപ്റ്റ് ചെയ്യാൻ bcrypt ഉപയോഗിക്കുന്നു
പൈത്തൺ bcrypt പാസ്വേഡ് എൻക്രിപ്ഷൻ ലളിതമാക്കുന്നു. ഒരു ചട്ടക്കൂടിന്റെ സഹായമില്ലാതെ ഇത് ചെയ്യുന്നതിൽ ഞങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിക്കും. എന്നാൽ വിഷമിക്കേണ്ട, ഉപയോക്തൃ ഇൻപുട്ടുകൾ എങ്ങനെ സംരക്ഷിക്കാമെന്നും അവ ഡാറ്റാബേസിൽ നിന്ന് വായിക്കാമെന്നും നിങ്ങൾ മനസ്സിലാക്കുകയാണെങ്കിൽ, ചട്ടക്കൂടുകളിൽ നടപടിക്രമം സമാനമാണ്.
ഇൻസ്റ്റലേഷൻ
നിങ്ങൾ ഒരു പൈത്തൺ വെർച്വൽ എൻവയോൺമെന്റ് സജ്ജീകരിച്ച് PyCharm പോലുള്ള ഒരു IDE ഉപയോഗിക്കേണ്ടതുണ്ട്. ലൈബ്രറി ആദ്യം ഇൻസ്റ്റാൾ ചെയ്യണം:
രഹസ്യവാക്ക് എൻക്രിപ്റ്റ് ചെയ്യുന്നു
ഒരു ടെക്സ്റ്റ് ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം എൻക്രിപ്റ്റ് ചെയ്യാൻ bcrypt എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നോക്കാം:
മേൽപ്പറഞ്ഞ പൈത്തൺ കോഡ് ഒരു എൻക്രിപ്റ്റ് ചെയ്ത ബൈറ്റ് സ്ട്രിംഗ് എക്സിക്യൂട്ട് ചെയ്യുകയും ഔട്ട്പുട്ട് ചെയ്യുകയും ചെയ്യുന്നു. എന്നാൽ ഓരോ തവണയും നിങ്ങൾ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, ഫലം വ്യത്യസ്തമാണ്. ഓരോ ഉപയോക്താവിനും പ്രത്യേകമായി എൻക്രിപ്റ്റ് ചെയ്ത ഒരു പാസ്വേഡ് ഉണ്ടെന്ന് ഉറപ്പാക്കാൻ Bcrypt ഈ രീതി ഉപയോഗിക്കുന്നു.
അത് ആകസ്മികമായി, പാസ്വേഡ് എൻക്രിപ്ഷനുള്ളതാണ്.
Bcrypt ഉപയോഗിച്ചുള്ള പാസ്വേഡ് താരതമ്യവും സ്ഥിരീകരണവും
നിങ്ങൾ ഹാഷ് ചെയ്ത പാസ്വേഡ് സേവ് ചെയ്യാനും അത് പ്രാമാണീകരണത്തിനായി ഒരു ഉപയോക്താവ് സമർപ്പിച്ച പാസ്വേഡുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് പിന്നീട് പരിശോധിക്കാനും ആഗ്രഹിക്കുന്നുവെങ്കിൽ എന്ത് സംഭവിക്കും?
അത് ലളിതമാണ്. പ്രാമാണീകരിക്കുന്ന പാസ്വേഡ് മാത്രമേ ഡാറ്റാബേസിന്റെ എൻട്രിയുമായി താരതമ്യം ചെയ്യാവൂ (അല്ലെങ്കിൽ ഈ സാഹചര്യത്തിൽ മെമ്മറിയിൽ).
ഡാറ്റാബേസിലുള്ളതുമായി താരതമ്യപ്പെടുത്തുന്നതിന് മുമ്പ് ആധികാരികമാക്കുന്ന പാസ്വേഡ് എൻകോഡ് ചെയ്യണം, കാരണം bcrypt-ന് ബൈറ്റ് സ്ട്രിംഗുകൾ മാത്രമേ വായിക്കാൻ കഴിയൂ. അടിസ്ഥാനപരമായി, നിങ്ങൾ നിലവിൽ നിങ്ങളുടെ ഡാറ്റാബേസിൽ ഉള്ള എൻകോഡ് ചെയ്ത ഹാഷ് ചെയ്ത പാസ്വേഡുമായി എൻകോഡ് ചെയ്ത പ്രാമാണീകരണ ഇൻപുട്ടിനെ താരതമ്യം ചെയ്യും.
സാങ്കൽപ്പിക പൈത്തൺ ഇൻപുട്ടുകൾ ഉപയോഗിച്ച് നമുക്ക് ഇത് പരിശോധിക്കാം:
മേൽപ്പറഞ്ഞ കോഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, ഒരു പുതിയ പാസ്വേഡിനായി നിങ്ങളോട് ആവശ്യപ്പെടും. ഇത് പൈത്തൺ മെമ്മറിയിൽ സൂക്ഷിക്കുന്നു. പ്രാമാണീകരണ വിഭാഗത്തിൽ, നിങ്ങൾ സ്വകാര്യമായ അതേ പാസ്വേഡ് നൽകും.
പാസ്വേഡ് താരതമ്യം ചെയ്ത് മുമ്പ് എൻക്രിപ്റ്റ് ചെയ്ത് മാച്ച് സേവ് ചെയ്താൽ, പൈത്തൺ ഒരു വിജയ സന്ദേശം പുറപ്പെടുവിക്കുന്നു.
ഇല്ലെങ്കിൽ, പിശക് സന്ദേശം പ്രിന്റ് ചെയ്യപ്പെടും, തുടർന്ന് മറ്റ് വാക്യം ചേർക്കും.
ആധികാരികത ഉറപ്പാക്കുന്നതിനായി ഒരു ഡാറ്റാബേസിലേക്ക് ഒരു പാസ്വേഡ് രജിസ്റ്റർ ചെയ്യുകയും നൽകുകയും ചെയ്യുന്നതിന്റെ അടിസ്ഥാന ആശയം സമാനമാണ്.
തീരുമാനം
പ്ലെയിൻ പൈത്തൺ ഷോർട്ട് മെമ്മറിയിൽ bcrypt എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണിക്കാൻ ഞങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്ത പാസ്വേഡുകൾ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിലും, അതിന്റെ യഥാർത്ഥ പ്രയോഗക്ഷമത ഉപയോക്തൃ-ബേസ് ആപ്പുകളിലാണുള്ളത്.
എന്നിരുന്നാലും, ഈ ലേഖനം യഥാർത്ഥ ലോക സാഹചര്യങ്ങളിൽപ്പോലും, ഇത് നിറവേറ്റുന്നതിന് നിങ്ങളുടെ കോഡ് ഓർഗനൈസ് ചെയ്യുന്നതിനുള്ള അവശ്യ രീതികൾ കാണിക്കുന്നു.
ഉദാഹരണത്തിന്, നിങ്ങൾ ഫ്ലാസ്ക് ഉപയോഗിക്കുകയാണെങ്കിൽ, ഇൻപുട്ടുകൾക്ക് പകരം വെവ്വേറെ വെബ് ഫോമുകൾ വഴി രജിസ്ട്രേഷനും പ്രാമാണീകരണ ഫീൽഡുകളും നിങ്ങൾക്ക് നൽകാം.
തീർച്ചയായും, പാസ്വേഡുകൾ താരതമ്യം ചെയ്യുമ്പോൾ, യഥാർത്ഥ ലോകത്ത് സൂക്ഷിച്ചിരിക്കുന്ന എൻക്രിപ്റ്റ് ചെയ്ത പാസ്വേഡുകൾ അടങ്ങുന്ന ഒരു ഡാറ്റാബേസിൽ നിന്ന് നിങ്ങൾ വായിക്കും.
ജോണ നിറ്റ്ഷ്
ലളിതവും ലളിതവുമായ ഈ വിശദീകരണത്തിന് നന്ദി,
ഇത് എന്റെ ഇപ്പോഴത്തെ പ്രോജക്റ്റിൽ എന്നെ വളരെയധികം സഹായിച്ചു.
ഉദാഹരണ കോഡ് ഏറ്റവും കുറഞ്ഞതിലേക്ക് പരിമിതപ്പെടുത്തിയിരിക്കുന്നതും മറ്റ് നിരവധി വിശദീകരണങ്ങളെപ്പോലെ ഓവർലോഡ് ചെയ്യാത്തതും വളരെ നല്ലതാണെന്ന് ഞാൻ കരുതുന്നു.
ആശംസകളോടെ