humanhash.dev
Des noms mémorisables pour vos empreintes hexadécimales.
Transformez f3527e4ef32f… en canyon-jam-telescope-creek. Une petite API REST gratuite pour SHA-1, SHA-256, MD5, UUID et tout ce qui peut s'encoder en hex.
Essayer
Faites un GET sur n'importe quelle empreinte hex à /api/v1/hash/<hex>. L'endpoint est ouvert, déterministe et CORS-friendly :
https://humanhash.dev/api/v1/hash/f3527e4ef32f9d8b59ead6b7b70a843c3da1c105Réponse :
{
"inputHash": "f3527e4ef32f9d8b59ead6b7b70a843c3da1c105",
"wordlist": "default",
"hash": "canyon-jam-telescope-creek"
} Fonctionnement
HumanHash transforme n'importe quelle chaîne hexadécimale en un nom court et prononçable en trois étapes :
- Parser l'entrée hex en tableau d'octets.
- Compresser ces octets en N segments égaux (N = 4 par défaut) et XOR-réduire chaque segment à un seul octet.
- Mapper chaque octet résultant (0–255) à une entrée d'une liste de 256 mots, puis joindre par tirets.
La sortie est totalement déterministe — la même entrée donne toujours le même nom — et l'algorithme est sans état, sans base de données ni aléa. Quatre mots tirés d'une liste de 256 donnent 256⁴ ≈ 4,3 milliards de combinaisons, soit environ une empreinte de 32 bits : confortable pour qu'un humain reconnaisse des déploiements ou builds individuels, mais pas un substitut au hash sous-jacent quand la résistance aux collisions compte.
Référence de l'API
GET https://humanhash.dev/api/v1/hash/{hex}
- Paramètre de chemin
-
hex— toute chaîne hexadécimale. Pas de limite de longueur ; les entrées plus longues sont XOR-compressées avant mapping. - Vocabulaire
-
?wordlist— optionnel. Choisit le jeu de mots : default, cyberpunk, mythology, gems ou gourmet. Les valeurs inconnues reviennent au jeu par défaut. Voir le vocabulaire - Réponse
- JSON :
{ "inputHash": string, "hash": string } - Mots
- Toujours 4 mots séparés par des tirets, depuis une liste fixe de 256.
- Authentification
- Aucune. CORS ouvert.
- Limites
- Meilleur effort, sans limites strictes. Vendorisez ou auto-hébergez pour un usage intensif.
Exemples de code
curl
curl https://humanhash.dev/api/v1/hash/f3527e4ef32f9d8b59ead6b7b70a843c3da1c105 JavaScript (fetch)
const hex = "f3527e4ef32f9d8b59ead6b7b70a843c3da1c105";
const res = await fetch(`https://humanhash.dev/api/v1/hash/${hex}`);
const { hash } = await res.json();
console.log(hash); // "canyon-jam-telescope-creek" Python
import requests
hex_digest = "f3527e4ef32f9d8b59ead6b7b70a843c3da1c105"
r = requests.get(f"https://humanhash.dev/api/v1/hash/{hex_digest}")
print(r.json()["hash"]) # "canyon-jam-telescope-creek" Go
resp, _ := http.Get("https://humanhash.dev/api/v1/hash/f3527e4ef32f9d8b59ead6b7b70a843c3da1c105")
defer resp.Body.Close()
var out struct{ InputHash, Hash string }
json.NewDecoder(resp.Body).Decode(&out)
fmt.Println(out.Hash) // "canyon-jam-telescope-creek" UUID
Les UUID fonctionnent aussi — retirez d'abord les tirets :
curl https://humanhash.dev/api/v1/hash/550e8400e29b41d4a716446655440000
# => {"inputHash":"550e8400e29b41d4a716446655440000","wordlist":"default","hash":"vault-lift-onion-lilac"} Exemple : GitHub Actions
Un pattern courant consiste à dériver un nom mémorisable depuis github.sha et à l'utiliser à côté du SHA — par exemple pour taguer une image Docker avec les deux. C'est exactement ainsi que nous utilisons HumanHash dans nos propres pipelines de production :
name: build
on:
push:
branches: ["main"]
env:
IMAGE_NAME: "ghcr.io/your-org/your-app"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get human hash
run: echo "HUMAN_HASH=$(curl -s "https://humanhash.dev/api/v1/hash/${{ github.sha }}" | jq -r '.hash')" >> "$GITHUB_ENV"
- name: Build Docker image
run: docker build . --tag ${{ env.IMAGE_NAME }}:${{ github.sha }} --tag ${{ env.IMAGE_NAME }}:${{ env.HUMAN_HASH }}
- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Push image
run: docker push --all-tags ${{ env.IMAGE_NAME }} Chaque push obtient deux tags : le SHA exact pour la reproductibilité, et un nom convivial comme swift-river-mellow-bolt réellement utilisable en chat, dashboards et réunions. Le binaire jq est préinstallé sur le runner ubuntu-latest hébergé par GitHub, aucune installation supplémentaire requise.
Cas d'usage
- Noms de build et de déploiement. Taguez un build CI comme swift-river-mellow-bolt plutôt que 7c4f9a2. Plus facile à mentionner en réunion, plus facile à retrouver dans l'historique de chat.
- Références de commit en chat. Coller un SHA dans Slack passe inaperçu ; coller canyon-jam-telescope-creek se lit.
- IDs de session et de requête dans les logs. Pour grep entre services ou dire un ID à voix haute en visio, les mots battent l'hex.
- Noms de sauvegardes et snapshots. Restaurer vault-bronze-falcon-river fait moins peur que restaurer b8f9c1d2…
- Comparaison d'empreintes. Comparer visuellement des empreintes SSH ou TLS est bien plus rapide en quatre mots qu'en 40 caractères hex.
- Étiquettes d'assets / versions. Donnez à vos artefacts de build, checkpoints de modèles ou snapshots de datasets un nom dont les humains peuvent parler.
Comparaison avec d'autres formats d'identifiants
| Format | Exemple | Mémorisable | Espace de collision |
|---|---|---|---|
| SHA-1 hex | f3527e4ef32f… | Non | 2¹⁶⁰ |
| UUID v4 | 550e8400-e29b-41d4-a716-… | Non | 2¹²² |
| Base58 (12 car.) | 5KQwrPbwdL5M | Un peu | ~70 bits |
| HumanHash (4 mots) | canyon-jam-telescope-creek | Oui | 2³² ≈ 4,3 Md |
| Petname / coolname | quiet-blue-finch | Oui | Variable |
HumanHash est singulier : c'est une projection déterministe d'un identifiant existant — il ne remplace pas votre UUID ou hash, il le double avec un nom lisible. Utilisez les deux ensemble.
Questions fréquentes
Qu'est-ce que HumanHash ? +
Comment fonctionne l'algorithme ? +
La conversion est-elle réversible ? +
Est-ce sûr pour des tokens ou de l'authentification ? +
L'API est-elle gratuite ? Y a-t-il des limites ? +
Puis-je auto-héberger ou vendoriser l'algorithme ? +
Combien de sorties uniques sont possibles ? +
Quelle est la probabilité d'une collision ? +
Qui opère humanhash.dev ? +
Le vocabulaire de 256 mots
Les sorties sont tirées d'une liste curée de 256 mots anglais courts et prononçables, regroupés en huit catégories thématiques de 32. La liste évite les orthographes ambiguës, les quasi-homophones et les mots qui se lisent mal enchaînés.
Changez de jeu avec les onglets ci-dessous, ou choisissez-en un via l'API avec ?wordlist=<id> — cyberpunk, mythology, gems, gourmet
Couleurs (32)
aqua, azure, beige, bronze, brown, cherry, coral, cream, cyan, gold, grey, hazel, indigo, ivory, jade, khaki, lemon, lilac, lime, magenta, maroon, mauve, olive, peach, pink, plum, ruby, sage, sand, teal, violet, white
Animaux (32)
alpaca, badger, beaver, bison, cobra, crane, deer, dingo, eagle, falcon, ferret, fox, geese, heron, jaguar, koala, kookaburra, lemur, lynx, moth, otter, panda, pelican, quail, raven, shark, sloth, swan, tiger, trout, vulture, zebra
Planètes & espace (32)
asteroid, comet, cosmos, crater, eclipse, galaxy, halo, jupiter, mars, mercury, meteor, nebula, neptune, orbit, planet, quasar, rocket, satellite, saturn, sky, solar, space, star, sun, telescope, terra, titan, universe, uranus, venus, vortex, zenith
Nature & géographie (32)
bluff, cairn, canyon, coast, creek, desert, dune, forest, glacier, grove, hill, horizon, island, jungle, knoll, lake, meadow, moss, ocean, peak, puddle, ridge, river, stream, swamp, thistle, trail, valley, volcano, wave, woods, yarrow
Nourriture & fruits (32)
apple, berry, bread, cake, clove, cookie, dough, grape, herb, honey, jam, juice, kiwi, maize, melon, mint, muffin, noodle, oats, onion, pesto, pickle, pie, rind, roast, spice, sugar, toast, vanilla, waffle, yeast, zest
Adjectifs (32)
agile, brave, calm, clever, crisp, daring, deep, easy, fierce, flat, giant, great, happy, heavy, high, light, lively, loud, lucky, mellow, quick, quiet, rapid, ready, sharp, silent, smart, smooth, solid, swift, vast, vivid
Objets & concepts (32)
anchor, beacon, bolt, bridge, canvas, cipher, clock, coin, crown, diamond, echo, flare, ghost, glyph, hammer, helix, jewel, key, ledger, locket, maze, moment, needle, puzzle, quill, scroll, shield, signal, spirit, token, tower, vault
Verbes & actions (32)
bounce, capture, dash, drift, enter, escape, fly, glide, grasp, halt, jump, launch, lift, march, move, pedal, plunge, quiver, race, roam, scan, seek, shine, soar, spin, spring, steer, stride, thrust, touch, travel, weave
Neon-noir chrome, hackers, and megacity sprawl.
Neon & Light (32)
neon, glow, flare, laser, strobe, prism, glare, beam, haze, shimmer, glint, spark, blaze, gleam, aurora, halo, flicker, radiance, lumen, violet, magenta, azure, crimson, amber, cyan, glimmer, dazzle, luster, sheen, glaze, glisten, vivid
Chrome & Metal (32)
chrome, steel, titanium, alloy, rivet, girder, plating, ingot, cobalt, tungsten, nickel, mercury, platinum, brass, copper, iron, forge, weld, gantry, carbon, graphite, ferrous, molten, scrap, plasteel, rebar, wrench, sprocket, piston, turbine, ratchet, bolt
Hacking & Code (32)
cipher, exploit, payload, rootkit, daemon, kernel, cracker, decrypt, breach, backdoor, malware, botnet, spoof, sniffer, keylog, firewall, proxy, hashcode, scripter, worm, trojan, phisher, brute, entropy, sandbox, leetcode, bytecode, syntax, compile, debug, glitch, zeroday
Cyber Cityscape (32)
megacity, skyline, tenement, alley, arcology, district, slum, overpass, subway, rooftop, backstreet, plaza, tower, bunker, sprawl, gutter, skyway, metro, precinct, quarter, barrio, conduit, sewer, atrium, spire, gridlock, tunnel, bazaar, ghetto, skyscraper, drainage, viaduct
Augmentation (32)
cybernetic, implant, prosthetic, optic, servo, exoskel, wetware, neuralink, graft, retina, cortex, synapse, spinal, cranial, ocular, gland, sinew, tendon, marrow, plexus, reflex, limb, jaw, skull, vein, nerve, muscle, bionic, augment, cyborg, biochip, dermal
Synth & Sound (32)
synth, oscillator, reverb, arpeggio, bassline, waveform, tremolo, distortion, filter, resonance, modular, sequencer, analog, subwoofer, echo, feedback, vocoder, sustain, timbre, cadence, tempo, pulse, drone, glissando, staccato, octave, chorus, delay, sampler, loop, groove, crescendo
Corp & Crime (32)
zaibatsu, conglomerate, syndicate, cartel, fixer, runner, mercenary, smuggler, racket, extortion, blackmail, launder, contraband, kingpin, enforcer, bounty, ransom, bribe, heist, felony, gangster, underworld, triad, yakuza, contractor, mogul, tycoon, embezzle, sabotage, espionage, operative, henchman
Tech Actions (32)
override, reboot, upload, jack, scramble, hijack, intercept, encrypt, transmit, accelerate, reroute, disable, activate, fragment, corrupt, render, extract, inject, detonate, ignite, amplify, calibrate, reverse, trace, scan, wipe, ghost, cloak, fuse, splice, rewire, unleash
Gods, heroes, monsters, and relics of world myth.
Greek Gods (32)
zeus, hera, apollo, artemis, ares, athena, hermes, hades, poseidon, hestia, demeter, dionysus, helios, hecate, nike, eros, hypnos, nemesis, iris, gaia, uranus, cronus, rhea, selene, morpheus, pan, eos, nyx, tyche, hebe, themis, circe
Norse Myth (32)
odin, thor, loki, freya, baldur, heimdall, tyr, frigg, njord, vidar, bragi, forseti, hel, skadi, sif, idun, fenrir, garm, sleipnir, ratatosk, nidhogg, midgard, asgard, valhalla, bifrost, ragnarok, mjolnir, gungnir, yggdrasil, valkyrie, norns, ymir
Egyptian Myth (32)
ra, osiris, isis, horus, anubis, thoth, seth, bastet, sekhmet, hathor, nephthys, ptah, amun, atum, khonsu, sobek, geb, nut, shu, tefnut, maat, khepri, apophis, wadjet, ammit, serqet, montu, neith, sahu, duat, aaru, scarab
Mythic Creatures (32)
griffin, phoenix, hydra, chimera, sphinx, kraken, basilisk, wyvern, manticore, cerberus, minotaur, pegasus, centaur, cyclops, harpy, gorgon, satyr, nymph, selkie, kelpie, banshee, wendigo, leviathan, behemoth, roc, cockatrice, unicorn, dragon, wraith, golem, djinn, faun
Heroes & Mortals (32)
atlas, perseus, theseus, heracles, jason, achilles, odysseus, hector, orpheus, cadmus, midas, icarus, daedalus, pandora, helen, castor, leonidas, beowulf, sigurd, gilgamesh, arjuna, cuchulainn, mulan, wukong, ajax, priam, aeneas, pyramus, medea, arachne, tantalus, oedipus
Relics & Artifacts (32)
aegis, ankh, amulet, talisman, grail, trident, caduceus, cornucopia, labrys, fleece, scepter, chalice, reliquary, obelisk, totem, idol, sceptre, torc, brooch, crown, gauntlet, draupnir, clarent, gram, excalibur, durendal, tyrfing, gleipnir, kusanagi, scimitar, quiver, censer
Sacred Realms (32)
olympus, elysium, tartarus, asphodel, avalon, shangri, arcadia, delphi, parnassus, ithaca, troy, sparta, thebes, atlantis, hyperborea, niflheim, muspelheim, jotunheim, alfheim, helheim, vanaheim, nirvana, penglai, camelot, babylon, memphis, karnak, heliopolis, valinor, mordor, shambhala, eden
Mythic Concepts (32)
fate, omen, rune, oracle, prophecy, destiny, augury, sacrifice, ritual, blessing, curse, vision, quest, legend, myth, saga, epic, relic, shrine, temple, altar, sigil, glyph, portent, ambrosia, nectar, wisdom, valor, glory, honor, chaos, cosmos
Precious stones, metals, flowers, and herbs.
Gemstones (32)
opal, topaz, amber, garnet, jasper, beryl, zircon, peridot, spinel, sphene, kunzite, citrine, amethyst, sapphire, emerald, diamond, agate, onyx, jade, coral, pearl, ivory, ruby, moonstone, sunstone, jadeite, morganite, carnelian, turquoise, lapis, kyanite, iolite
Minerals (32)
quartz, calcite, feldspar, mica, gypsum, halite, fluorite, pyrite, galena, azurite, malachite, hematite, barite, talc, graphite, olivine, kaolin, borax, cinnabar, realgar, stibnite, apatite, dolomite, selenite, celestite, rhodonite, obsidian, flint, chert, geode, tanzanite, spinelite
Metals (32)
gold, silver, copper, bronze, platinum, titanium, iridium, rhodium, osmium, cobalt, nickel, zinc, tungsten, chromium, vanadium, tantalum, niobium, gallium, indium, rhenium, cerium, terbium, erbium, yttrium, scandium, lithium, rubidium, cadmium, antimony, bismuth, selenium, palladium
Flowers (32)
lily, rose, iris, poppy, daisy, tulip, violet, peony, dahlia, aster, lotus, jasmine, lavender, lilac, freesia, marigold, petunia, zinnia, begonia, camellia, magnolia, gardenia, orchid, anemone, primrose, snowdrop, bluebell, foxglove, azalea, hibiscus, verbena, crocus
Trees (32)
oak, elm, ash, birch, maple, cedar, pine, spruce, willow, alder, aspen, beech, hazel, rowan, yew, fir, larch, linden, sycamore, poplar, chestnut, walnut, hawthorn, juniper, cypress, redwood, sequoia, mahogany, teak, ebony, acacia, rosewood
Herbs (32)
basil, thyme, sage, mint, rosemary, oregano, parsley, chive, dill, fennel, tarragon, cilantro, marjoram, savory, borage, sorrel, chervil, lovage, comfrey, betony, chamomile, yarrow, nettle, mallow, angelica, burdock, valerian, feverfew, hyssop, balm, catnip, rue
Foliage (32)
fern, moss, ivy, vine, frond, leaf, sprout, bramble, thicket, bracken, clover, heather, reed, rush, sedge, bracket, tendril, shoot, bud, petal, stamen, pollen, nectar, blossom, sprig, twig, bough, canopy, grove, hedge, meadow, garden
Earthy Tones (32)
umber, ochre, sienna, russet, sepia, taupe, clay, sand, loam, slate, pebble, gravel, cobble, stone, boulder, shale, marble, granite, basalt, limestone, sandstone, soapstone, chalk, soot, ember, cinder, amberhue, dust, soil, earth, mud, peat
Spices, produce, cheeses, and the kitchen.
Spices & Seasonings (32)
saffron, cumin, paprika, nutmeg, cardamom, cinnamon, cloves, turmeric, coriander, fennel, fenugreek, mustard, allspice, mace, anise, caraway, sumac, wasabi, ginger, galangal, peppercorn, vanilla, tamarind, juniper, sesame, poppy, celeryseed, achiote, grains, asafoetida, pimento, zaatar
Herbs (32)
basil, thyme, oregano, rosemary, sage, parsley, cilantro, dill, chervil, marjoram, tarragon, chive, mint, lavender, savory, sorrel, lovage, borage, verbena, lemongrass, bayleaf, catnip, hyssop, angelica, epazote, perilla, shiso, watercress, arugula, purslane, nasturtium, comfrey
Fruits (32)
apricot, mango, lychee, fig, quince, persimmon, guava, papaya, pomegranate, tangerine, clementine, plum, damson, mulberry, gooseberry, currant, elderberry, kumquat, loquat, pawpaw, rambutan, durian, jackfruit, starfruit, passionfruit, cherimoya, feijoa, nectarine, greengage, medlar, sapote, tamarillo
Vegetables (32)
artichoke, asparagus, fennelbulb, leek, shallot, endive, radicchio, kohlrabi, celeriac, parsnip, turnip, rutabaga, beetroot, chard, kale, collard, okra, aubergine, courgette, squash, pumpkin, cauliflower, broccoli, fennelroot, salsify, scorzonera, cardoon, samphire, truffle, morel, chanterelle, porcini
Cheeses & Dairy (32)
brie, camembert, gruyere, gouda, cheddar, stilton, roquefort, gorgonzola, parmesan, pecorino, manchego, comte, emmental, havarti, provolone, mozzarella, ricotta, mascarpone, feta, halloumi, paneer, burrata, taleggio, fontina, reblochon, raclette, jarlsberg, asiago, cotija, quark, clotted, kefir
Drinks (32)
espresso, cappuccino, latte, mocha, chai, matcha, oolong, rooibos, horchata, lassi, negroni, martini, sangria, mimosa, aperol, campari, amaretto, limoncello, calvados, armagnac, cognac, mead, cider, kombucha, tonic, cordial, kvass, atole, switchel, shrub, cortado, ristretto
Dishes & Bakes (32)
risotto, paella, tagine, gnocchi, ravioli, cannelloni, souffle, tartine, baguette, brioche, croissant, focaccia, ciabatta, crumpet, scone, galette, clafoutis, tiramisu, macaron, baklava, strudel, quiche, frittata, tortilla, empanada, dumpling, gyoza, ramen, laksa, goulash, cassoulet, ratatouille
Techniques (32)
braise, poach, blanch, saute, sear, roast, baste, caramel, deglaze, marinate, ferment, pickle, cure, smoke, steam, simmer, whisk, fold, julienne, mince, reduce, emulsify, flambe, temper, proof, knead, grill, broil, confit, render, clarify, infuse
Sans garantie
Ce service est fourni tel quel, sans garantie de disponibilité et sans promesse d'exister éternellement. Cela dit, nous l'utilisons pour nos propres charges de production, donc il ne va pas disparaître à court ou moyen terme. Si vous en dépendez, envisagez de vendoriser l'algorithme — il est petit.
Fiabilité
HumanHash s'exécute sur Cloudflare Workers et est servi depuis le réseau edge mondial de Cloudflare, présent dans des centaines de villes. Le service est sans état et déterministe — aucune base de données ni backend susceptible de tomber en panne — si bien que les requêtes sont traitées au plus près de vous, avec une haute disponibilité et une faible latence. Cela reste un service gratuit au mieux, sans SLA formel : intégrez la liste de mots à votre projet ou auto-hébergez le service si vous avez besoin d'une disponibilité garantie.
À propos
HumanHash est opéré par Pilvia Oy, une société cloud finlandaise. Nous l'utilisons en interne pour étiqueter builds, déploiements et snapshots, et l'avons ouvert parce que l'algorithme est utile en général.
Le concept humanhash est né d'une petite bibliothèque Python par Zachary Voase. Cette implémentation est une réécriture TypeScript indépendante tournant sur Cloudflare Workers, avec un vocabulaire propre.