Hash et Sécurité

Générateur MurmurHash

Calculez des hachages MurmurHash3 en 32 ou 128 bits à partir de n'importe quel texte.

Évaluez cet outil

Comment utiliser Générateur MurmurHash

  1. Saisissez ou collez votre texte dans le champ.
  2. Choisissez la variante — le 32 bits convient à la plupart des tables de hachage.
  3. Le hachage s'affiche au fur et à mesure ; cliquez sur Copier pour le récupérer.

À propos de Générateur MurmurHash

MurmurHash3 a été créé par Austin Appleby et est devenu la réponse par défaut à la question « avec quoi hacher mes clés ? » pour toute une génération de code d'infrastructure. Le nom vient de sa boucle interne — multiplier, faire pivoter, multiplier, faire pivoter — une poignée d'instructions CPU peu coûteuses répétées sur des blocs de l'entrée, suivies d'une étape de finalisation qui fait déferler les bits en avalanche. Ce n'est ni une somme de contrôle ni un hachage cryptographique : c'est un hachage de distribution, conçu pour transformer des clés en nombres qui se dispersent uniformément dans des compartiments, ce qui explique sa présence fréquente dans les tables de hachage et les filtres de Bloom.

Les noms des variantes méritent une explication, car deux d'entre elles se ressemblent et ne sont pas interchangeables. murmur3a est la version 32 bits et donne 8 caractères hexadécimaux. murmur3c et murmur3f sont toutes deux en 128 bits et donnent toutes deux 32 caractères hexadécimaux, mais ce sont des algorithmes distincts — l'un optimisé pour les CPU x86 32 bits, l'autre pour les x64 64 bits — et ils produisent un résultat totalement différent pour la même entrée. Ce ne sont pas deux implémentations d'un même hachage : choisir la « mauvaise » variante ne correspondra pas à l'autre système auquel vous essayez de parler. Si vous comparez des hachages avec un autre outil ou une autre bibliothèque, vous devez faire correspondre exactement la variante utilisée.

Choisissez le 32 bits sauf raison contraire : c'est le plus rapide, et 8 caractères suffisent largement pour un compartimentage ordinaire. Passez à une variante 128 bits lorsque vous hachez des ensembles de clés très volumineux et que vous voulez rendre les collisions accidentelles quasi impossibles, ou lorsque vous avez besoin d'un identifiant compact pour la déduplication. Aucune d'elles n'est sûre face à un attaquant — les collisions de MurmurHash3 peuvent être produites délibérément, et les attaques par inondation de hachage contre des services l'ayant utilisé sans protection constituent un problème réel et documenté. Pour tout usage adversarial, tournez-vous vers SHA-256 ; même MD5 se situe dans une catégorie de difficulté différente.

Questions fréquentes

Quelle est la différence entre murmur3c et murmur3f ?

Les deux sont en 128 bits et donnent toutes deux 32 caractères hexadécimaux, mais ce sont des algorithmes différents — murmur3c est optimisé pour x86 et murmur3f pour x64. La même entrée donne des résultats différents, vous devez donc choisir exactement la variante utilisée par l'autre système.

Quelle variante dois-je choisir ?

MurmurHash3 32 bits pour un usage normal de table de hachage et de compartimentage. Utilisez une variante 128 bits lorsque vous avez d'immenses ensembles de clés ou que vous voulez un identifiant compact où les collisions accidentelles doivent être extrêmement rares.

MurmurHash est-il sécurisé ?

Non. C'est un hachage de distribution rapide sans aucune résistance aux attaques — des collisions peuvent être fabriquées volontairement, ce qui a été exploité pour des attaques par déni de service par inondation de hachage. Ne l'utilisez jamais pour des mots de passe, des signatures ou la détection de falsification.

À quoi MurmurHash est-il utile ?

Aux tables de hachage, filtres de Bloom, répartition, partitionnement et clés de cache — partout où vous avez besoin de clés réparties de façon rapide et uniforme, et où personne ne cherche à fausser le résultat.

Mon texte est-il envoyé quelque part ?

Votre texte est envoyé à notre serveur pour être haché, car les navigateurs ne peuvent pas calculer MurmurHash. Il est haché puis immédiatement supprimé — jamais journalisé, jamais stocké.