Miklix

MurmurHash3A räsikoodi kalkulaator

Avaldatud: 18. veebruar 2025, kell 00:39:09 UTC

Räsikoodi kalkulaator, mis kasutab räsifunktsiooni MurmurHash3A, et arvutada tekstisisestuse või faili üleslaadimise põhjal räsikood.

See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

MurmurHash3A Hash Code Calculator

MurmurHash3 on mittekrüptograafiline räsifunktsioon, mille töötas välja Austin Appleby 2008. aastal. Seda kasutatakse laialdaselt üldotstarbeliseks räsimiseks tänu selle kiirusele, lihtsusele ja headele levitamisomadustele. Funktsioonid MurmurHash on eriti tõhusad räsipõhiste andmestruktuuride puhul, nagu räsitabelid, õitsengufiltrid ja andmete dubleerimise süsteemid.

Sellel lehel esitatud variant on 3A variant, mis on optimeeritud 32-bitiste süsteemide jaoks. See toodab 32-bitiseid (4-baidiseid) räsikoode, mis on tavaliselt esindatud 8-kohalise kuueteistkümnendarvuna.

Täielik avalikustamine: ma ei kirjutanud sellel leheküljel kasutatud hash-funktsiooni konkreetset rakendust. See on standardne funktsioon, mis kuulub PHP programmeerimiskeele juurde. Ma tegin veebiliidese ainult selleks, et see siin avalikult kättesaadavaks teha.


Uue Hash-koodi arvutamine

Selle vormi kaudu esitatud andmeid või üleslaetud faile hoitakse serveris ainult nii kaua, kui kaua kulub taotletud hash-koodi genereerimiseks. Need kustutatakse vahetult enne tulemuse tagastamist teie brauserile.

Sisendandmed:



Esitatud tekst on UTF-8 kodeeritud. Kuna hash-funktsioonid töötavad binaarsete andmetega, on tulemus teistsugune kui siis, kui tekst oleks mõnes muus kodeeringus. Kui teil on vaja arvutada mingis kindlas kodeeringus oleva teksti hash, peaksite selle asemel üles laadima faili.



MurmurHash3A räsialgoritmi kohta

Ma ei ole matemaatik, kuid püüan seda räsifunktsiooni selgitada analoogia abil, millest mu kaas-mittemaatikutest aru saavad. Kui eelistate teaduslikult korrektset, täielikku matemaatikat selgitavat selgitust, siis olen kindel, et leiate selle mujalt ;-)

Kujutage nüüd ette, et teil on suur kast LEGO klotse. Iga kord, kui neid konkreetsel viisil korraldate, teete pildi. Ükskõik kui suur või värviline paigutus on, teeb kaamera alati väikese fikseeritud suurusega foto. See foto kujutab teie LEGO loomingut, kuid kompaktsel kujul.

MurmurHash3 teeb andmetega midagi sarnast. See võtab igasuguseid andmeid (tekst, numbrid, failid) ja kahandab need väikese fikseeritud sõrmejälje või räsiväärtuseni. See sõrmejälg aitab arvutitel andmeid kiiresti tuvastada, sortida ja võrrelda, ilma et peaksite kogu asja vaatama.

Teine analoogia oleks nagu koogi küpsetamine ja MurmurHash3 on retsept, kuidas muuta see kook väikeseks koogikeseks (räsi). See protsess oleks kolmeastmeline:

1. samm: lõigake tükkideks (andmete purustamine)

  • Esiteks lõikab MurmurHash3 teie andmed võrdseteks tükkideks, nagu lõikaks koogi ühtlasteks ruutudeks.

2. samm: segage nagu hull (tükkide segamine)

  • Iga tükk läbib metsiku segamisprotsessi:
    • Pööramine: nagu pannkoogi ümberpööramine, paigutab see tükid ümber.
    • Segamine: lisab asjade segamiseks juhuslikke koostisosi (matemaatilisi tehteid).
    • Surumine: surub andmed kokku, et tagada, et ükski originaalosa ei paistaks silma.

3. samm: lõplik maitsetest (lõpuviimine)

  • Pärast kõigi tükkide segamist segab MurmurHash3 seda veel ühe viimase, et isegi väikseim algandmete muudatus muudaks maitset (räsi) täielikult.
Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Bang Christensen

Autorist

Mikkel Bang Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.