Calculateur hash djb2
Collez un mot et obtenez l'empreinte djb2 de Bernstein : hello donne 0f923099, soit 261238937 en nombre, comme dans les manuels. Utile pour les tables de hachage, les clés de cache et la répartition stable en groupes, jamais pour des mots de passe. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- hello
- Hash en hex
- 0f923099
- Hash (entier)
- 261 238 937
- Hash en décimal
- 261238937
- Longueur
- 5
djb2 est le hachage de chaîne non cryptographique classique conçu par Daniel J. Bernstein : on part de cinq mille trois cent quatre-vingt-un, puis pour chaque caractère on multiplie le hachage courant par trente-trois et on ajoute le code du caractère, en ne conservant que les trente-deux bits bas. Les développeurs choisissent encore djb2 lorsqu'ils ont besoin d'une empreinte rapide et déterministe pour tables de hachage, clés de cache, cartes de déduplication et supports pédagogiques qui doivent coller aux manuels et aux extraits de code connus. Cette capacité accepte une chaîne de texte non vide, exécute exactement cet algorithme sur les unités de code UTF-16 et renvoie le résidu de trente-deux bits sous forme de huit chiffres hexadécimaux en minuscules plus l'entier non signé correspondant.
Ce qu'est djb2 et quand un hachage de chaîne 32 bits suffit
Les hachages non cryptographiques échangent la résistance aux collisions contre la vitesse et la simplicité. djb2 est l'un des compromis les plus copiés : la graine cinq mille trois cent quatre-vingt-un et le multiplicateur trente-trois (souvent écrit comme un décalage de cinq bits à gauche plus la valeur d'origine) produisent un entier de trente-deux bits bien dispersé pour les chaînes courtes ordinaires, sans tables, secrets ni dépendances de plateforme.
Bernstein a publié l'idée à l'ère du domaine public des utilitaires de chaînes en C ; elle apparaît encore dans les runtimes de langages, les moteurs de jeux et les billets de blog parce que les étudiants peuvent l'implémenter en quelques lignes et obtenir une distribution utile pour les tables de hachage. Ce n'est pas un hachage de mot de passe, ni un résumé d'intégrité de contenu, ni un substitut à SHA-256 ou BLAKE lorsqu'un adversaire pourrait choisir les entrées.
Ce point d'accès fixe l'enroulement classique non signé sur trente-deux bits de sorte que le mot ASCII hello donne le résidu familier 0f923099, et la chaîne test donne 7c9e6865, en accord avec les implémentations de référence courantes qui tronquent par un cast non signé après chaque étape multiplier-et-ajouter.
Cas d’usage
Indicateurs de fonctionnalité et seaux de routage
Projetez des chaînes d'utilisateur ou de locataire dans un espace de trente-deux bits pour des seaux A/B cohérents sans surcharge cryptographique ni matériel secret.
Questions fréquentes
Comment calculer un hachage djb2 ?
Envoyez une chaîne non vide dans le champ text.
Quel algorithme et quelle graine sont utilisés ?
djb2 classique de Daniel J. Bernstein : hachage initial 5381, puis pour chaque caractère hash = hash * 33 + charCode, tronqué en valeur 32 bits non signée.
djb2 convient-il aux mots de passe ou à l'intégrité ?
Non. djb2 est une empreinte non cryptographique rapide pour tables de hachage et enseignement. Utilisez un hachage cryptographique moderne pour mots de passe, signatures et intégrité de contenu.
Pourquoi mon résultat djb2 diffère-t-il de celui d'un autre outil ?
Le plus souvent, l'autre outil saute une étape de la recette classique. Celui-ci part de 5381, multiplie par 33, ajoute le code de chaque caractère et ne garde à chaque étape que les 32 bits bas non signés, ce qui donne 0f923099 pour hello comme le code de référence.
À quoi sert un hachage djb2 ?
À donner à n'importe quel texte un nombre rapide et reproductible. On s'en sert pour ranger des clés dans une table de hachage, former des clés de cache, repérer des doublons et répartir des utilisateurs en groupes de test stables, quand la vitesse compte plus que la résistance aux attaques.
Outils associés
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/djb2 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/djb2", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/djb2",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/djb2", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/djb2", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "hello"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.djb2",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
L'entrée vide est rejetée avec invalid_input afin que les appelants ne confondent jamais une charge de longueur nulle avec un vrai hachage.
Contrat d'entrée, rejet de l'entrée vide et champs de réponse
Les nombres et booléens sont acceptés en les convertissant en forme chaîne avant le hachage, ce qui garde les widgets de calculatrice simples ergonomiques. L'échec de validation n'est pas facturé. L'algorithme est linéaire en longueur de chaîne et entièrement en mémoire ; gardez les démos navigateur à des chaînes d'échelle humaine et épinglez des vecteurs connus comme hello égal à 0f923099 en intégration continue pour qu'un refactor d'une ligne ne change pas le contrat en silence. Envoyez en POST un corps JSON avec le champ chaîne obligatoire text. La valeur doit être une chaîne non vide ; text manquant, null ou une chaîne vide échoue avec invalid_input et un message qui signale explicitement une entrée vide ou manquante afin que les interfaces de formulaire puissent mettre le champ en évidence sans deviner. En cas de succès, le corps inclut hash_hex comme huit chiffres hexadécimaux en minuscules complétés de zéros à gauche, hash_int comme l'entier non signé de zéro à quatre milliards deux cent quatre-vingt-quatorze millions neuf cent soixante-sept mille deux cent quatre-vingt-quinze, hash_dec comme le même entier en texte décimal, length comme le nombre de caractères de la chaîne hachée, algorithm fixé à djb2 et seed fixé à cinq mille trois cent quatre-vingt-un documentant la valeur initiale classique. Les alias data, payload, value, input et string sont acceptés pour la charge afin que les clients SDK réutilisent des noms de champ existants.
Où une API de hachage djb2 justifie son existence
Les formateurs et coachs d'entretien utilisent la même sortie déterministe pour noter les implémentations d'étudiants du hachage multiplier-par-trente-trois sans monter une ferme de compilateurs. Les sites de contenu qui se positionnent sur calculateur de hachage djb2 gagnent un outil en direct dont le chemin gratuit coïncide octet par octet avec le chemin d'automatisation. Gardez les requêtes déterministes, rejetez les charges vides en bordure, et vous obtenez une reproductibilité de manuel sans embarquer des extraits djb2 dans chaque micro-service. Les équipes backend automatisent l'API dans des outils de mise en service qui assignent des fragments de cache, des seaux d'indicateurs de fonctionnalité ou des clés de routage de journaux et épinglent des valeurs dorées hash_hex pour qu'une migration de plateforme ne réordonne jamais le trafic par accident. Comme l'implémentation est parse pure de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Cas d'intégration
Empreintes pour tables de hachage et clés de cache
Hachez de courts identifiants avec djb2 et stockez hash_hex ou hash_int comme empreinte compacte et indépendante du langage pour cartes, caches et affectation de seaux.
Enseignement et vecteurs de tests dorés
Affirmez que le code étudiant ou de bibliothèque produit hash_hex 0f923099 pour hello et 7c9e6865 pour test afin que les ports de djb2 restent alignés entre runtimes.
Questions techniques
Que se passe-t-il si j'envoie un texte vide ?
Un texte vide ou manquant échoue avec invalid_input et un message signalant une entrée vide. Ces échecs ne sont pas facturés.
Combien coûte l'outil de hachage djb2 ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; l'entrée invalide n'est pas facturée.