ForHosting KIT · Outils pour développeurs

Calculateur hash FNV-1

Hachez un texte à la manière d'origine de Fowler, Noll et Vo, en multipliant avant de mêler chaque octet : foobar donne 31f0b262 sur 32 bits, la valeur que les tables de référence donnent pour FNV-1 et non pour FNV-1a. Choisissez 32 ou 64 bits. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
foobar
Vous obtenez
Résultat
31f0b262
Fnv1
31f0b262
Hex
31f0b262
Bits
32

FNV-1 est une fonction de hachage non cryptographique conçue par Glenn Fowler, Landon Curt Noll et Phong Vo. Elle traite chaque message comme une suite d'octets et, pour chaque octet, multiplie le hachage courant par un nombre premier FNV fixe puis applique un xor de l'octet sur le produit. Cet ordre multiplier-puis-xor distingue FNV-1 de FNV-1a, qui fait d'abord le xor puis multiplie ; les deux partagent les mêmes bases de décalage et premiers, mais produisent des résumés différents pour toute chaîne non vide. Cet outil de hachage FNV-1 accepte un texte non vide, l'encode en UTF-8, exécute la boucle déterministe à la largeur demandée et renvoie le résumé hex avec l'étiquette d'algorithme, la largeur en bits, le nombre d'octets et un court résumé.

Ce que calcule FNV-1 et pourquoi la largeur et la longueur hex comptent

FNV-1 traite chaque message comme une suite ordonnée d'octets. Le registre de hachage est initialisé à une base de décalage publiée : hexadécimal huit un un c neuf d c cinq pour trente-deux bits, ou c b f deux neuf c e quatre huit quatre deux deux deux trois deux cinq pour soixante-quatre bits.

Pour chaque octet d'entrée l'algorithme multiplie le hachage courant par le premier FNV correspondant—zéro un zéro zéro zéro un neuf trois en trente-deux bits, ou un zéro zéro zéro zéro zéro zéro zéro un b trois en soixante-quatre bits—puis applique un ou exclusif de l'octet sur le produit, en enveloppant à la largeur de bits choisie. Une chaîne de contrôle bien connue est foobar : FNV-1 sur trente-deux bits donne trois un f zéro b deux six deux, ce qui correspond aux tables de référence indépendantes pour l'ordre original multiplier-puis-xor.

La réponse renvoie aussi bits, l'étiquette d'algorithme FNV-1-32 ou FNV-1-64, le nombre d'octets UTF-8 et le texte d'origine pour qu'un client affiche une ligne d'audit complète sans recalculer les métadonnées. Comme FNV-1 n'est pas résistant aux collisions, n'est pas chiffré par clé et ne convient ni aux mots de passe ni aux signatures, traitez-le comme un identifiant de contenu rapide ou une graine de table de hachage—pas comme une preuve d'authenticité.

Préférez les digests de la famille SHA lorsque l'intention de recherche est un hachage cryptographique plutôt qu'un hachage non cryptographique Fowler–Noll–Vo.

À quoi sert un hachage FNV-1

Les auteurs de runtimes de langage et les étudiants en systèmes utilisent un calculateur de hachage FNV-1 pour vérifier à la main les étapes multiplier-puis-xor face aux bases de décalage et premiers publiés sans écrire une boucle de multiplication modulaire dans chaque langage. Les plateformes d'enseignement et les plugins LMS ont besoin d'un oracle déterministe qui rejette l'entrée vide au lieu de renvoyer la seule base de décalage, afin que les auto-correcteurs distinguent une réponse manquante d'un vrai résumé.

Les sites de contenu qui se positionnent sur hash FNV-1 ou calculateur FNV1 bénéficient d'un outil en direct dont le chemin gratuit correspond octet par octet au chemin d'automatisation payant sur le même module pur. Les échecs de validation ne consomment jamais le solde après rejet. Associez des landings FNV-1a, Adler-32, CRC ou hachage cryptographique seulement lorsque l'intention de recherche quitte le FNV-1 d'origine—gardez cette page centrée sur FNV-1 pour que l'intention SEO reste nette et ne cannibalise pas les landings de checksum ou de digest voisines.

Graines pour tables de hachage et filtres de Bloom

Générez des clés hex stables FNV-1-32 ou FNV-1-64 pour de courtes chaînes utilisées comme seaux de map, filtres de Bloom ou graines de feature flag entre langages.

Démonstrations en classe du FNV multiplier-puis-xor

Les enseignants montrent la valeur de contrôle classique de foobar et laissent les étudiants recalculer d'autres courtes chaînes sans installer de bibliothèque cryptographique.

Quelle est la différence entre FNV-1 et FNV-1a ?

FNV-1 multiplie d'abord par le premier FNV, puis applique un xor de l'octet. FNV-1a fait d'abord le xor, puis multiplie. Cet outil n'implémente que FNV-1 ; les résumés ne correspondront pas aux tables FNV-1a.

Que se passe-t-il si le texte est vide ?

Une chaîne non vide est obligatoire ; l'entrée vide n'est pas traitée comme un hachage réussi de la seule base de décalage.

Le calculateur de hachage FNV-1 est-il gratuit ?

L'outil du navigateur s'exécute gratuitement sur votre appareil.

FNV-1 est-il un hachage cryptographique ?

Non. FNV-1 est un hachage non cryptographique rapide pour tables de hachage et clés de contenu. Utilisez SHA-256 ou similaire lorsque vous avez besoin de résistance aux collisions ou d'authentification.

Faut-il choisir FNV-1 sur 32 ou sur 64 bits ?

Prenez la largeur qu'attend l'autre système, car les deux ne concordent jamais. La version 32 bits est celle par défaut et donne huit chiffres hexadécimaux, comme 31f0b262 pour foobar ; la version 64 bits a sa propre valeur de départ et son propre nombre premier, et en donne seize.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/enc/fnv1

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/enc/fnv1 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"foobar"}'
{
  "text": "foobar"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.fnv1",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

L'entrée vide est rejetée avec invalid_input afin que personne ne confonde un champ manquant avec la valeur connue du message vide égale à la base de décalage.

Contrat d'entrée, erreurs de chaîne vide et forme de la réponse JSON

La chaîne est encodée en UTF-8 avant la boucle FNV, de sorte que les caractères multi-octets contribuent chaque octet d'unité de code exactement comme le ferait un runtime de langage en hachant le même flux UTF-8. L'entrée vide est volontairement rejetée plutôt que de renvoyer la seule base de décalage, afin que l'UX produit et les auto-correcteurs distinguent une réponse manquante d'un vrai hachage. Ancrez à la fois un chemin de succès et une erreur d'entrée vide dans l'intégration continue pour qu'un changement accidentel de premier, de base ou d'ordre multiplier-xor ne parte pas en production. Les champs nuls facultatifs sont omis plutôt qu'émis comme null, conformément au contrat du moteur de rendu déclaratif pour des formulaires web propres. Envoyez un corps JSON avec un champ chaîne obligatoire nommé text : toute suite non vide de caractères que vous souhaitez hacher. Les alias input, value, s, data, message et payload sont acceptés pour le même champ afin que les stubs SDK et les envois de formulaire restent souples. Le champ facultatif bits choisit la largeur : entier trente-deux (par défaut) ou soixante-quatre ; les alias width, bit_width et size sont acceptés. Un text manquant, une valeur non chaîne ou une chaîne vide échouent avec invalid_input et un message clair indiquant qu'une chaîne non vide est requise ; ces échecs ne sont pas facturés sur l'API prépayée. Une valeur de bits qui n'est ni trente-deux ni soixante-quatre échoue aussi avec invalid_input. En cas de succès le corps inclut result, fnv1 et hex avec le même résumé hexadécimal minuscule ; bits avec la largeur utilisée ; algorithm fixé à FNV-1-32 ou FNV-1-64 ; input_bytes égal à la longueur UTF-8 ; text reprenant l'entrée ; et message résumant le nombre d'octets et le résultat hex.

Où une API de hachage FNV-1 apporte de la valeur et comment fonctionne le prix

Utilisez l'outil gratuit dans le navigateur pour des contrôles ponctuels ; appelez l'API prépayée KIT depuis des backends, des fonctions serverless et des SDK lorsque vous avez besoin d'un contrat stable sous solde à $0.002 par élément réussi. Gardez les charges à des tailles de texte ordinaires adaptées à un appel d'élément dans un isolate Worker ; cet outil vise les chaînes courtes et les extraits de protocole, pas les blobs binaires multi-mégaoctets.

Fixtures CI pour aides au hachage non cryptographique

Les pipelines ancrent des sorties hex FNV-1 déterministes et l'erreur d'entrée vide pour qu'un changement accidentel de premier, de base ou d'ordre échoue immédiatement.

Comment calculer un hachage FNV-1 d'un texte ?

Envoyez un JSON avec un champ chaîne non vide text et, en option, bits à 32 (par défaut) ou 64. L'API encode la chaîne en UTF-8, exécute FNV-1 (multiplier-puis-xor) et renvoie le hachage en hex minuscule dans result, fnv1 et hex.

Consulter la documentation complète du KIT →