ક્રિપ્ટોગ્રાફિક હેશ શું છે?
એક ક્રિપ્ટોગ્રાફ઼િક હૅશ ફ઼ંક્શન મનગમતી-લંબાઈનો ઇનપુટ લઈ નિશ્ચિત-લંબાઈનો ડાઇજેસ્ટ ઉત્સર્જિત કરે છે. સમાન ઇનપુટ હંમેશાં સમાન ડાઇજેસ્ટ આપે; એક જ બિટ ફ઼્લિપ કરવાથી લગભગ અડધા આઉટપુટ બિટ્સ બદલાઈ જાય. આ ટૂલ ચાર સૌથી વ્યાપક ડાઇજેસ્ટ — MD5 (RFC 1321), SHA-1, SHA-256, અને SHA-512 (SHA પરિવાર FIPS 180-4 દ્વારા વ્યાખ્યાયિત) — ગણે છે — તમે આપેલ કોઈ પણ ટેક્સ્ટ અથવા ફ઼ાઇલ માટે, ડેટા ડિવાઇસ છોડ્યા સિવાય.
આ હેશ જનરેટર કેવી રીતે કામ કરે છે?
હેશિંગ સંપૂર્ણપણે તમારા મશીન પર ચાલે છે. SHA-1, SHA-256 અને SHA-512 ને બ્રાઉઝર ના નેટિવ crypto.subtle.digest API પર મોકલવામાં આવે છે; MD5 એક બંડલ કરેલ પબ્લિક-ડોમેન અમલીકરણ વાપરે છે કારણ કે Web Crypto MD5 પૂરું પાડતું નથી. પગલાં આ પ્રમાણે છે:
- તમારું ઇનપુટ textarea માંથી વંચાય છે, અથવા તમારી ફાઇલ ડિસ્ક માંથી એક
ArrayBufferમાં વંચાય છે. લખાણ ને હેશિંગ પહેલાં UTF-8 તરીકે એન્કોડ કરવામાં આવે છે જેથી ડાઇજેસ્ટ એ જ હોય જે સર્વર-બાજુ નોhashlib.sha256(text.encode())કૉલ ઉત્પન્ન કરત. - દરેક એલ્ગોરિધમ સંદેશ ને એક બ્લોક સીમા સુધી પૅડ કરે છે અને તેને બ્લોક-દર-બ્લોક પ્રક્રિયા કરે છે, ઇનપુટ બાઇટ્સ ને bitwise અને મૉડ્યુલર-અંકગણિત ક્રિયાઓ ના ક્રમ દ્વારા ચાલતી આંતરિક અવસ્થા સાથે મિશ્રિત કરે છે.
- જ્યારે અંતિમ બ્લોક નો ઉપભોગ થઈ જાય ત્યારે આંતરિક અવસ્થા ને આખરી રૂપ આપવામાં આવે છે: MD5 128 બિટ આપે છે, SHA-1 160 બિટ આપે છે, SHA-256 256 બિટ આપે છે, અને SHA-512 512 બિટ આપે છે.
- કાચા ડાઇજેસ્ટ બાઇટ્સ ને કાં તો lowercase hexadecimal અથવા પ્રમાણભૂત Base64 તરીકે ફોર્મેટ કરવામાં આવે છે, જે પૅનલ ની ઉપર તમે પસંદ કરો છો તે એન્કોડિંગ પર આધાર રાખે છે.
- દરેક ડાઇજેસ્ટ ને એક Copy બટન સાથે તેના પોતાના readonly textarea માં લખવામાં આવે છે. Live મોડ ચાલુ કરવાથી દરેક કીસ્ટ્રોક પર ફરી હેશ થાય છે જેથી તમે વાસ્તવિક સમય માં avalanche અસર જોઈ શકો.
મારે કયો હેશ એલ્ગોરિધમ વાપરવો જોઈએ?
અહીં મોકલેલા ચાર એલ્ગોરિધમ જૂના checksums થી માંડીને વર્તમાન cryptographic ભલામણો સુધી ની સમગ્ર શ્રેણી ને આવરી લે છે. પરિચિતતા થી નહીં, કામ પ્રમાણે પસંદ કરો:
- MD5 (128-bit) — ઝડપી ubiquitous, cryptographically broken. 2004 collisions public. Non-security checksums: dedup, cache busters, ETag fingerprints, trusted catalogue integrity.
- SHA-1 (160-bit) — security deprecated. 2017 SHAttered PDF collision. Legacy Git, older TLS, HMAC. નવા કામ adopt.
- SHA-256 (256-bit) — current general-purpose default. TLS fingerprints, Bitcoin, software checksums, container digests, code-signing. Doubt.
- SHA-512 (512-bit) — SHA-2 larger state 64-bit word. 64-bit CPUs faster SHA-256. Extra collision margin, longer HMAC keys.
આ હેશ જનરેટર શા માટે વાપરવું?
- ગોપનીયતા: ઇનપુટ નો દરેક બાઇટ તમારા બ્રાઉઝર માં સ્થાનિક રીતે હેશ થાય છે. કોઈ ફાઇલ અપલોડ નહીં, કોઈ નેટવર્ક રાઉન્ડ-ટ્રિપ નહીં, કોઈ સર્વર લૉગ નહીં. ફાઇલ પિકર File API દ્વારા સીધે જ ડિસ્ક માંથી વાંચે છે.
- એક જ પાસ માં ચાર ડાઇજેસ્ટ: એક વાર પેસ્ટ કરો અને MD5, SHA-1, SHA-256 અને SHA-512 ને સાથોસાથ વાંચો, ફરી હેશ કર્યા વગર આઉટપુટ એન્કોડિંગ ને hex અને Base64 ની વચ્ચે સ્વિચ કરો.
- ધોરણ-પ્રમાણે-સાચું આઉટપુટ: SHA કુટુંબ ને
crypto.subtle.digestને સોંપવામાં આવે છે, જે એ જ FIPS 180-4 અમલીકરણ છે જેના પર તમારી ઓપરેટિંગ સિસ્ટમ પહેલેથી જ ભરોસો કરે છે. MD5 RFC 1321 નું બાઇટ-દર-બાઇટ પાલન કરે છે. - ચકાસણી ના કામ માટે બનાવેલ: live મોડ તમે ટાઇપ કરો ત્યારે avalanche અસર દર્શાવે છે; ફાઇલ પૅનલ ટૅબ ની મેમરી જેટલી સમાવી શકે તેટલા કદ સુધી ની બાઇનરી ને સંભાળે છે, જેથી તમે ટર્મિનલ વગર release archives ચકાસી શકો.
હેશ ફંક્શનના સામાન્ય ઉપયોગો કયા છે?
હેશ રોજબરોજ ના એન્જિનિયરિંગ કામ માં બધે જ દેખાય છે:
- ડાઉનલોડ ની ચકાસણી: કોઈ release archive ના SHA-256 ડાઇજેસ્ટ ને પ્રોજેક્ટ ની વેબસાઇટ પર પ્રકાશિત મૂલ્ય સાથે સરખાવીને એ ખાતરી કરવી કે પરિવહન દરમિયાન તેમાં છેડછાડ થઈ ન હતી.
- એકીકરણ ડિબગ કરવું: કોઈ ભાગીદાર સેવા વિનંતી ના સહી માં જે ચોક્કસ MD5 કે SHA-256 ની અપેક્ષા રાખે છે તેને ફરી ઉત્પન્ન કરવું જેથી તમે તમારા canonical-string બિલ્ડર માં off-by-one શોધી શકો.
- કન્ટેન્ટ એડ્રેસિંગ: કોઈ payload માંથી એક નિર્ધારિત ID ઉત્પન્ન કરવી, જેને cache કી, ડિડુપ્લિકેશન માર્કર, અથવા Git-શૈલી ના ઑબ્જેક્ટ ઓળખકર્તા તરીકે વાપરી શકાય.
Hash ઉદાહરણ?
ASCII સ્ટ્રિંગ hello ને હેશ કરવાથી MD5 તરીકે 5d41402abc4b2a76b9719d911017c592, SHA-1 તરીકે aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d, SHA-256 તરીકે 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824, અને SHA-512 તરીકે 9b71d224bd62f3785d96d46ad3ea3d73... થી શરૂ થતી 128-અક્ષર ની hex સ્ટ્રિંગ મળે છે. એક જ પાછળ ની સ્પેસ ઉમેરીને ફરી હેશ કરવાથી દરેક ડાઇજેસ્ટ ઓળખ ની બહાર બદલાઈ જાય છે.
આ હેશ જનરેટર સંપૂર્ણપણે તમારા બ્રાઉઝર માં એ જ primitives પર ચાલે છે જેના પર તમારી ઓપરેટિંગ સિસ્ટમ પહેલેથી જ ભરોસો કરે છે: SHA કુટુંબ માટે Web Crypto અને Web Crypto જે એક ડાઇજેસ્ટ પૂરું પાડતું નથી તેના માટે એક નાની, ઑડિટ કરેલ MD5 રૂટિન. પેસ્ટ કરો, ફાઇલ ડ્રૉપ કરો, ડાઇજેસ્ટ કૉપિ કરો — બીજું કંઈ જ ટૅબ ની બહાર જતું નથી.