§

Bcrypt ജനറേറ്റർ

§

Bcrypt ഹാഷ് ജനറേറ്റ് ചെയ്യുക

10 (1,024 rounds)

കേരളത്തിലെയും ഇന്ത്യയിലെയും വെബ് ഡെവലപ്മെന്റിൽ പാസ്വേഡ് സംഭരണത്തിനുള്ള മാനദണ്ഡമാണ് Bcrypt. Rails-ന്റെ has_secure_password bcrypt ഉപയോഗിക്കുന്നു, Django, Node.js എന്നിവയിലും bcrypt ലഭ്യമാണ്. NIST SP 800-63B മെമ്മറി-ഹാർഡ് ഹാഷിംഗ് ശുപാർശ ചെയ്യുന്നു, OWASP bcrypt-നെ Argon2id-നൊപ്പം ഒരു മുൻഗണനാ ഓപ്ഷനായി പട്ടികപ്പെടുത്തുന്നു. കേരളത്തിലെ ടെക് സ്റ്റാർട്ടപ്പുകളും ഐടി പാർക്കുകളും (ഇൻഫോപാർക്ക്, ടെക്നോപാർക്ക്) ഈ സുരക്ഷാ മാനദണ്ഡങ്ങൾ പാലിക്കുന്നു. ചെലവ് ഘടകം ഒരു ഹാഷ് എടുക്കുന്ന സമയത്തെ നിയന്ത്രിക്കുന്നു — ചെലവ് 10 (2^10 = 1024 റൗണ്ട്) ശുപാർശ ചെയ്യപ്പെടുന്ന ഏറ്റവും കുറഞ്ഞ നിലവാരമാണ്, അതേസമയം 12 (4096 റൗണ്ട്) അഡ്മിൻ പോർട്ടലുകൾക്കും ധനകാര്യ സംവിധാനങ്ങൾക്കും അനുയോജ്യമാണ്. ഈ ഉപകരണം പൂർണ്ണമായും JavaScript വഴി നിങ്ങളുടെ ബ്രൗസറിൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ പാസ്വേഡുകൾ ഒരിക്കലും നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്തുപോകുന്നില്ല.

എന്താണ് bcrypt?

Blowfish സൈഫറിനെ അടിസ്ഥാനമാക്കി Niels Provos, David Mazières എന്നിവർ രൂപകൽപ്പന ചെയ്ത ഒരു പാസ്വേഡ്-ഹാഷിംഗ് ഫംഗ്ഷൻ ആണ് Bcrypt. MD5 അല്ലെങ്കിൽ SHA-256 പോലുള്ള വേഗതയേറിയ ഡൈജസ്റ്റുകളിൽ നിന്ന് വ്യത്യസ്തമായി, bcrypt മനഃപൂർവ്വം പതുക്കെയും കമ്പ്യൂട്ടേഷണലായി ചെലവേറിയതുമാണ് — ഇത് മോഷ്ടിക്കപ്പെട്ട പാസ്വേഡ് ഹാഷുകൾക്കെതിരായ ബ്രൂട്ട്-ഫോഴ്സ് ആക്രമണങ്ങളെ അപ്രായോഗികമാക്കുന്നു. Bcrypt ഓരോ പാസ്വേഡിനും യാന്ത്രികമായി ഒരു റാൻഡം സാൾട്ട് ജനറേറ്റ് ചെയ്യുന്നു, അതിനാൽ സമാന പാസ്വേഡുകൾ വ്യത്യസ്ത ഹാഷുകൾ ഉത്പാദിപ്പിക്കുന്നു.

Bcrypt എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്?

Bcrypt അൽഗോരിതം പൂർണ്ണമായും നിങ്ങളുടെ ബ്രൗസറിൽ പ്രവർത്തിക്കുന്നു. ഘട്ടം ഘട്ടമായി എന്താണ് സംഭവിക്കുന്നത് എന്നത് ഇതാ:

  1. നിങ്ങളുടെ പാസ്വേഡ് UTF-8 ബൈറ്റുകളായി എൻകോഡ് ചെയ്യപ്പെടുകയും bcrypt കീ ഷെഡ്യൂളിലേക്ക് നൽകപ്പെടുകയും ചെയ്യുന്നു, ഇത് പാസ്വേഡും സാൾട്ടും ഉപയോഗിച്ച് Blowfish സൈഫറിന്റെ 4,184-ബൈറ്റ് P-അറേയും S-ബോക്സുകളും ആരംഭിക്കുന്നു.
  2. ഒരു റാൻഡം 128-ബിറ്റ് സാൾട്ട് ജനറേറ്റ് ചെയ്യപ്പെടുന്നു. സാൾട്ട് കീ ഷെഡ്യൂളിൽ കലർത്തപ്പെടുന്നു, അതിനാൽ ഓരോ അദ്വിതീയ സാൾട്ടും ഒരേ പാസ്വേഡിന് പോലും തികച്ചും വ്യത്യസ്തമായ ഹാഷ് ഉത്പാദിപ്പിക്കുന്നു.
  3. കീ ഷെഡ്യൂൾ 2^cost റൗണ്ടുകൾക്കായി (ഉദാ. 2^10 = 1,024 ആവർത്തനങ്ങൾ കോസ്റ്റ് 10-ൽ) ആവർത്തിക്കപ്പെടുന്നു. ഓരോ ആവർത്തനവും സാൾട്ടും P-അറേ എൻട്രികളും വീണ്ടും എൻക്രിപ്റ്റ് ചെയ്യുന്നു, ഇത് ചെലവ് കൂടുന്നതിനനുസരിച്ച് കമ്പ്യൂട്ടേഷനെ ആനുപാതികമായി പതുക്കെയാക്കുന്നു.
  4. അന്തിമ ഔട്ട്പുട്ട് $2b$<cost>$<salt><hash> ഫോർമാറ്റിലുള്ള 60-അക്ഷര സ്ട്രിംഗ് ആണ്, ഇവിടെ cost പൂജ്യം-പാഡഡ് (ഉദാ. 10), salt 22 Base64 അക്ഷരങ്ങൾ, hash 31 Base64 അക്ഷരങ്ങൾ എന്നിവയാണ്.
  5. സ്ഥിരീകരണത്തിനായി, അതേ അൽഗോരിതം ഉമ്മാൻ പാസ്വേഡും സംഭരിച്ച ഹാഷിൽ നിന്ന് എടുത്ത സാൾട്ടും ഉപയോഗിച്ച് വീണ്ടും പ്രവർത്തിപ്പിക്കുന്നു. ഉത്പാദിപ്പിച്ച ഹാഷ് സംഭരിച്ച ഹാഷുമായി യോജിക്കുന്നുവെങ്കിൽ, പാസ്വേഡ് ശരിയാണ്.

ഏത് ചെലവ് ഘടകമാണ് ഞാൻ ഉപയോഗിക്കേണ്ടത്?

ചെലവ് ഘടകം ആവർത്തന എണ്ണത്തിന്റെ ലോഗരിതം ആണ് — കോസ്റ്റ് 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 നടപ്പിലാക്കൽ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു. പാസ്വേഡുകൾ സംഭരിക്കുന്നതിന് മുമ്പ് ഹാഷ് ചെയ്യുക, നിലവിലുള്ള ഹാഷുകൾ സ്ഥിരീകരിക്കുക, നിങ്ങളുടെ സുരക്ഷാ ആവശ്യങ്ങൾക്ക് അനുയോജ്യമായ രീതിയിൽ ചെലവ് ഘടകം ക്രമീകരിക്കുക — ഒരു ബൈറ്റ് പോലും സെർവറിലേക്ക് അയയ്ക്കാതെ തന്നെ.