Miklix

MurmurHash3F Hash-kode sakrekenaar

Gepubliseer: 18 Februarie 2025 om 00:29:43 UTC

Hash-kode-sakrekenaar wat die MurmurHash3F-hash-funksie gebruik om 'n hash-kode te bereken gebaseer op teksinvoer of lêeroplaai.

Hierdie bladsy is masjienvertaal uit Engels om dit vir soveel mense moontlik toeganklik te maak. Ongelukkig is masjienvertaling nog nie 'n volmaakte tegnologie nie, dus kan foute voorkom. As jy verkies, kan jy die oorspronklike Engelse weergawe hier sien:

MurmurHash3F Hash Code Calculator

MurmurHash3 is 'n nie-kriptografiese hash-funksie wat in 2008 deur Austin Appleby ontwerp is. Dit word wyd gebruik vir algemene-doel hashing as gevolg van sy spoed, eenvoud en goeie verspreidingseienskappe. MurmurHash-funksies is veral effektief vir hash-gebaseerde datastrukture soos hash-tabelle, blomfilters en data-dedupliseringstelsels.

Die variant wat op hierdie bladsy aangebied word, is die 3F-variant, wat geoptimaliseer is vir 64-bis-stelsels. Dit produseer 128-bis (16 grepe) hash-kodes, tipies voorgestel as 'n 32-syfer heksadesimale getal.

Volledige openbaarmaking: Ek het nie die spesifieke implementering van die hash-funksie wat op hierdie bladsy gebruik word, geskryf nie. Dit is 'n standaardfunksie wat by die PHP-programmeertaal ingesluit is. Ek het net die webkoppelvlak gemaak om dit vir gerief hier publiek beskikbaar te maak.


Bereken Nuwe Hash-kode

Data wat ingedien is of lêers wat deur hierdie vorm opgelaai word, sal slegs op die bediener gehou word vir so lank as wat dit neem om die gevraagde hash-kode te genereer. Dit sal onmiddellik uitgevee word voordat die resultaat na jou blaaier teruggestuur word.

Invoer data:



Ingediende teks is UTF-8 geënkodeer. Aangesien hash-funksies op binêre data werk, sal die resultaat anders wees as wanneer die teks in 'n ander enkodering was. As jy 'n hash van 'n teks in 'n spesifieke enkodering moet bereken, moet jy eerder 'n lêer oplaai.



Oor die MurmurHash3F Hash-algoritme

Ek is nie 'n wiskundige nie, maar ek sal probeer om hierdie hash-funksie te verduidelik deur 'n analogie te gebruik wat my mede-nie-wiskundiges kan verstaan. As jy 'n wetenskaplik korrekte, volledige wiskunde verduideliking verkies, is ek seker jy kan dit elders vind ;-)

Stel jou nou voor jy het 'n groot boks LEGO-stene. Elke keer as jy hulle op 'n spesifieke manier rangskik, neem jy 'n foto. Maak nie saak hoe groot of kleurvol die rangskikking is nie, die kamera gee jou altyd 'n klein, vaste grootte foto. Daardie foto verteenwoordig jou LEGO-skepping, maar in 'n kompakte vorm.

MurmurHash3 doen iets soortgelyks met data. Dit neem enige soort data (teks, nommers, lêers) en krimp dit tot 'n klein, vaste "vingerafdruk" of hash-waarde. Hierdie vingerafdruk help rekenaars om data vinnig te identifiseer, sorteer en vergelyk sonder om na die hele ding te kyk.

Nog 'n analogie sou wees soos om 'n koek te bak en MurmurHash3 is die resep om daardie koek in 'n klein kolwyntjie (die hash) te verander. Dit sal 'n drie-stap proses wees:

Stap 1: Kap in stukke (breek die data)

  • Eerstens sny MurmurHash3 jou data in gelyke stukke, soos om die koek in gelyke vierkante te sny.

Stap 2: Meng soos mal (Meng die stukke)

  • Elke stuk gaan deur 'n wilde mengproses:
    • Blaai: Soos om 'n pannekoek om te draai, herrangskik dit die stukkies.
    • Roer: Voeg ewekansige bestanddele (wiskundige bewerkings) by om dinge te meng.
    • Squishing: Druk die data saam om seker te maak dat geen oorspronklike stuk uitstaan ​​nie.

Stap 3: Finale Smaaktoets (Finalisering)

  • Nadat al die stukke gemeng is, gee MurmurHash3 dit 'n laaste roer om te verseker dat selfs die kleinste krummeltjie verandering in die oorspronklike data die geur (die hash) heeltemal sal verander.

Deel op BlueskyDeel op FacebookDeel op LinkedInDeel op TumblrDeel op XDeel op LinkedInSpeld op Pinterest

Mikkel Bang Christensen

Oor die skrywer

Mikkel Bang Christensen
Mikkel is die skepper en eienaar van miklix.com. Hy het meer as 20 jaar ondervinding as 'n professionele rekenaarprogrammeerder/sagteware-ontwikkelaar en is tans voltyds in diens van 'n groot Europese IT-korporasie. Wanneer hy nie blog nie, spandeer hy sy vrye tyd aan 'n groot verskeidenheid belangstellings, stokperdjies en aktiwiteite, wat tot 'n mate weerspieël kan word in die verskeidenheid onderwerpe wat op hierdie webwerf gedek word.