Calcolatore hash MurmurHash3
Scriva Hello, world! e otterrà c0363e43: l'hash MurmurHash3 x86 a 32 bit dei suoi 13 byte con il seed predefinito 0. Serve a verificare tabelle hash, chiavi di partizione o valori di test, mai a proteggere password. Gratis nel Suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello, world!
- Risultato
- c0363e43
- Murmur3
- c0363e43
- Hex
- c0363e43
- Seme
- 0
MurmurHash3 è un hash non crittografico veloce progettato da Austin Appleby per tabelle hash, chiavi di partizionamento, filtri bloom e impronte di contenuto dove contano la velocità e una buona distribuzione più della resistenza alle collisioni contro un avversario. La variante x86 a 32 bit, ampiamente usata, mescola il messaggio in blocchi di quattro byte con costanti pubblicate, ripiega una coda breve e termina con un mix finale sensibile alla lunghezza, producendo una sola parola di trentadue bit senza segno.
Cosa calcola MurmurHash3 x86 a 32 bit e perché il seed conta
MurmurHash3 x86 a 32 bit tratta ogni messaggio come una sequenza ordinata di ottetti. Il registro hash viene inizializzato con il seed fornito dal chiamante, che vale zero se omesso.
Il flusso viene elaborato in blocchi di quattro byte little-endian: ogni blocco viene moltiplicato per la costante c c nove e due d cinque uno, ruotato a sinistra di quindici bit, moltiplicato per uno b otto sette tre cinque nove tre e poi mescolato nell'hash corrente con una rotazione a sinistra di tredici bit e un moltiplica-somma con cinque e e sei cinque quattro sei b sei quattro.
Gli eventuali uno-tre byte di coda rimanenti vengono mescolati con le stesse costanti prima di un passo di finalizzazione che esegue xor della lunghezza totale, applica due moltiplicazioni a valanga con otto cinque e b c a sei b e c due b due a e tre cinque, e intercala spostamenti a destra.
Controlli noti includono la stringa ASCII foo con seed zero che produce f sei a cinque c quattro due zero, e Hello virgola spazio world esclamazione con seed zero che produce c zero tre sei tre e quattro tre. Cambiare il seed cambia il digest degli stessi byte, in modo intenzionale per insiemi multi-hash e mappe partizionate.
Poiché MurmurHash3 non è resistente alle collisioni contro un attaccante motivato, non è cifrato con chiave e non serve per password o firme, lo tratti come identificatore di contenuto veloce o miscelatore di tabella hash—non come prova di autenticità. Preferisca digest della famiglia SHA quando l'intento di ricerca è l'hashing crittografico piuttosto che un hash non crittografico MurmurHash3.
Dove un hash MurmurHash3 è utile
Autori di runtime di linguaggio e studenti di sistemi usano un calcolatore di hash MurmurHash3 per verificare a mano i mix di blocco e i passi di finalizzazione rispetto alle costanti pubblicate senza scrivere un loop a valanga completo in ogni linguaggio. I siti di contenuti che si posizionano per hash MurmurHash3 o calcolatore murmurhash3 beneficiano di uno strumento live il cui percorso gratuito coincide byte per byte con l'automazione a pagamento sullo stesso modulo puro. I fallimenti di validazione non consumano mai il saldo dopo il rifiuto.
Abbini landing FNV-1, Adler-32, CRC o hash crittografico solo quando l'intento di ricerca esce da MurmurHash3—mantenga questa pagina incentrata su MurmurHash3 x86 a 32 bit affinché l'intento SEO resti nitido e non cannibalizzi landing di checksum o digest correlati.
Casi d'uso
Chiavi di tabella hash e sharding
Generi chiavi hex stabili MurmurHash3-x86-32 per stringhe brevi usate come bucket di map, id di shard o partizioni di feature flag, con seed opzionale per layout multi-hash.
Dimostrazioni didattiche di MurmurHash3
I docenti mostrano i valori classici di foo e Hello, world! con seed zero e lasciano ricalcolare altre stringhe brevi agli studenti senza installare un modulo nativo.
Domande frequenti
Quali valori di seed sono consentiti?
Il seed deve essere un intero da 0 a 4294967295 inclusi. Lo ometta per usare 0.
Cosa succede se il testo è vuoto?
È richiesta una stringa non vuota; l'input vuoto non è trattato come hash riuscito.
Il calcolatore MurmurHash3 è gratuito?
Lo strumento nel browser gira gratis sul Suo dispositivo.
MurmurHash3 è un hash crittografico?
No. MurmurHash3 è un hash non crittografico veloce per tabelle hash e chiavi di contenuto. Usi SHA-256 o simile quando serve resistenza alle collisioni o autenticazione.
Cambiare il seed cambia l'hash MurmurHash3?
Sì. Lo stesso testo produce un hash diverso per ogni seed, ed è voluto: così può ottenere più hash indipendenti per un filtro bloom o una mappa partizionata. Senza seed si usa 0.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/murmur3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/murmur3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/murmur3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/murmur3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/murmur3", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello, world!"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.murmur3",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L'input vuoto e i seed non validi vengono rifiutati con invalid_input affinché nessuno confonda un campo mancante o un seed errato con un hash reale.
Contratto di input, validazione del seed e forma della risposta JSON
Quando seed è omesso, l'algoritmo usa zero. La stringa è codificata come UTF-8 prima del loop Murmur, così i caratteri multi-byte contribuiscono con ogni byte dell'unità di codice esattamente come farebbe un runtime hashando lo stesso flusso UTF-8. Fissi sia un percorso di successo sia un errore di seed non valido nell'integrazione continua affinché cambiamenti accidentali di costanti o rotazioni non vengano pubblicati inosservati. I campi null opzionali vengono omessi anziché emessi come null, secondo il contratto del renderer dichiarativo per form web puliti. Invii un corpo JSON con un campo stringa obbligatorio denominato text: qualsiasi sequenza non vuota di caratteri che desidera hashare. Gli alias input, value, s, data, message e payload sono accettati per lo stesso campo così stub SDK e invii di form restano flessibili. Il campo opzionale seed è un intero da zero a quattro miliardi duecentonovantaquattro milioni novecentosessantasettemila duecentonovantacinque inclusi (l'intero intervallo a trentadue bit senza segno); sono accettati gli alias salt e init. Text mancante, valore non stringa o stringa vuota falliscono con invalid_input e un messaggio chiaro che richiede una stringa non vuota; tali fallimenti non sono fatturati sull'API prepagata. Un seed non valido—non numerico, frazionario, booleano, negativo o maggiore di due alla trentadue meno uno—fallisce anch'esso con invalid_input e un messaggio esplicito di seed non valido affinché gli operatori correggano la configurazione senza wrap modulare silenzioso. In caso di successo il corpo include result, murmur3 e hex tutti impostati sullo stesso digest esadecimale a otto cifre minuscole; seed al valore usato; algorithm fisso su MurmurHash3-x86-32; input_bytes uguale alla lunghezza UTF-8; text che ripete l'input; e message che riassume conteggio byte, seed e risultato hex.
Dove un'API di hash MurmurHash3 crea valore e come funziona il prezzo
Piattaforme didattiche e plugin LMS necessitano di un oracolo deterministico che rifiuti input vuoto e seed errati invece di avvolgere in silenzio, così gli auto-valutatori distinguano errori di configurazione da digest reali. Usi lo strumento gratuito nel browser per controlli occasionali; chiami l'API prepagata KIT da backend, funzioni serverless e SDK quando serve un contratto stabile sotto saldo a $0.002 per elemento riuscito. Mantenga i payload a dimensioni di testo ordinarie adatte a una chiamata di elemento in un isolate Worker; questo strumento è per stringhe brevi e frammenti di protocollo, non blob binari multi-megabyte.
Casi di integrazione
Fixture CI per helper di hash non crittografico
Le pipeline fissano uscite hex deterministiche di MurmurHash3 e l'errore di seed non valido affinché cambiamenti accidentali di costanti, rotazione o wrap falliscano subito.
Domande tecniche
Come si calcola un hash MurmurHash3 di un testo?
Invii JSON con un campo stringa non vuoto text e seed opzionale (uint32, predefinito 0). L'API codifica la stringa in UTF-8, esegue MurmurHash3 x86 a 32 bit e restituisce l'hash come otto cifre hex minuscole in result, murmur3 e hex.