humanhash.dev
Hex digests के लिए यादगार नाम।
बदलें f3527e4ef32f… को canyon-jam-telescope-creek में। SHA-1, SHA-256, MD5, UUIDs और किसी भी ऐसी चीज़ के लिए एक छोटा, मुफ्त REST API जिसे आप hex में encode कर सकते हैं।
इसे आज़माएँ
किसी भी hex digest पर /api/v1/hash/<hex> पर GET करें। Endpoint खुला, deterministic और CORS-enabled है:
https://humanhash.dev/api/v1/hash/f3527e4ef32f9d8b59ead6b7b70a843c3da1c105प्रतिक्रिया:
{
"inputHash": "f3527e4ef32f9d8b59ead6b7b70a843c3da1c105",
"hash": "canyon-jam-telescope-creek"
} यह कैसे काम करता है
HumanHash किसी भी hexadecimal string को तीन चरणों में एक छोटे, उच्चारण-योग्य नाम पर मैप करता है:
- Parse hex इनपुट को byte array में।
- Compress उन bytes को N बराबर segments में (default N = 4) और प्रत्येक segment के bytes का XOR करके एक byte में।
- Map प्रत्येक परिणामी byte (0–255) को 256-शब्द सूची की एक entry से, फिर hyphen से जोड़ें।
आउटपुट पूरी तरह deterministic है — एक ही इनपुट हमेशा एक ही नाम देगा — और algorithm stateless है, कोई database या randomness नहीं। 256-शब्द सूची से चार शब्द 256⁴ ≈ 4.3 अरब combinations देते हैं, जो लगभग 32-bit fingerprint के बराबर है: व्यक्तिगत deploys या builds को पहचानने के लिए ठीक है, पर जहाँ collision-resistance मायने रखती है वहाँ अंतर्निहित hash का विकल्प नहीं।
API संदर्भ
GET https://humanhash.dev/api/v1/hash/{hex}
- Path पैरामीटर
-
hex— कोई भी hexadecimal string। लंबाई पर कोई पाबंदी नहीं; लंबे इनपुट mapping से पहले XOR-compress किए जाते हैं। - प्रतिक्रिया
- JSON:
{ "inputHash": string, "hash": string } - शब्द
- हमेशा 4 शब्द, hyphen से अलग, एक तय 256-शब्द सूची से।
- Auth
- कोई नहीं। CORS खुला।
- Rate limits
- Best-effort, कोई कठोर सीमा नहीं। भारी उपयोग के लिए vendor करें या स्वयं host करें।
कोड उदाहरण
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
UUIDs भी चलते हैं — पहले hyphens हटा दें:
curl https://humanhash.dev/api/v1/hash/550e8400e29b41d4a716446655440000
# => {"inputHash":"550e8400e29b41d4a716446655440000","hash":"vault-lift-onion-lilac"} उदाहरण: GitHub Actions
एक सामान्य pattern है github.sha से एक यादगार नाम बनाना और उसे SHA के साथ इस्तेमाल करना — उदाहरण के लिए Docker image को दोनों से tag करना। हम अपने production pipelines में HumanHash का इस्तेमाल ठीक इसी तरह करते हैं:
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 }} हर push को दो tags मिलते हैं: reproducibility के लिए सटीक SHA, और एक मानवीय नाम जैसे swift-river-mellow-bolt जो chat, dashboards और standups में सच में उपयोगी है। jq binary GitHub-hosted ubuntu-latest runner पर पहले से स्थापित है, इसलिए अतिरिक्त setup की ज़रूरत नहीं।
उपयोग के मामले
- Build और deploy नाम। किसी CI build को 7c4f9a2 के बजाय swift-river-mellow-bolt tag करें। Standups में बोलना आसान, chat history में ढूँढना आसान।
- Chat में commit references। Slack में SHA paste करना अनदेखा हो जाता है; canyon-jam-telescope-creek paste करना पढ़ा जाता है।
- Logs में session और request IDs। Services के पार grep करते समय या call पर ID बोलते समय, शब्द hex को मात देते हैं।
- Backup और snapshot नाम। vault-bronze-falcon-river को restore करना b8f9c1d2… को restore करने से कम डरावना है।
- Fingerprint तुलना। SSH या TLS fingerprints की दृश्य तुलना 40 hex अक्षरों के बजाय चार शब्दों में बहुत तेज़ है।
- Asset / version labels। Build artifacts, model checkpoints या dataset snapshots को ऐसा नाम दें जिसके बारे में लोग बात कर सकें।
अन्य identifier formats से तुलना
| Format | उदाहरण | यादगार | Collision space |
|---|---|---|---|
| SHA-1 hex | f3527e4ef32f… | नहीं | 2¹⁶⁰ |
| UUID v4 | 550e8400-e29b-41d4-a716-… | नहीं | 2¹²² |
| Base58 (12 chars) | 5KQwrPbwdL5M | कुछ हद तक | ~70 bits |
| HumanHash (4 शब्द) | canyon-jam-telescope-creek | हाँ | 2³² ≈ 4.3 अरब |
| Petname / coolname libraries | quiet-blue-finch | हाँ | बदलता है |
HumanHash की विशेषता यह है कि यह किसी मौजूदा identifier का deterministic projection है — यह आपके UUID या hash की जगह नहीं लेता, बल्कि उसे एक पठनीय नाम से जोड़ देता है। दोनों को साथ इस्तेमाल करें।
अक्सर पूछे जाने वाले प्रश्न
HumanHash क्या है? +
Algorithm कैसे काम करता है? +
क्या रूपांतरण उल्टा संभव है? +
क्या यह security tokens या authentication के लिए सुरक्षित है? +
क्या API मुफ्त है? क्या rate limits हैं? +
क्या मैं self-host या algorithm vendor कर सकता हूँ? +
कितने unique outputs संभव हैं? +
humanhash.dev कौन चलाता है? +
256-शब्द शब्दावली
Outputs 256 छोटे, उच्चारण-योग्य अंग्रेज़ी शब्दों की एक तैयार सूची से लिए जाते हैं, जो 32-32 की आठ themed श्रेणियों में बँटे हैं। सूची अस्पष्ट spelling, near-homophones और जोड़ने पर बुरे लगने वाले शब्दों से बचती है।
रंग (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
जानवर (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
ग्रह व अंतरिक्ष (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
प्रकृति व भूगोल (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
खाना व फल (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
विशेषण (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
वस्तुएँ व अवधारणाएँ (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
क्रियाएँ (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
कोई गारंटी नहीं
यह सेवा जैसी है वैसी प्रदान की जाती है, बिना किसी uptime या availability गारंटी के और बिना इस वादे के कि यह हमेशा रहेगी। हालाँकि, हम इसे अपने production workloads के लिए चलाते हैं, इसलिए निकट भविष्य में यह कहीं नहीं जा रही। यदि आप इस पर निर्भर हैं, तो algorithm को vendor करने पर विचार करें — यह छोटा है।
हमारे बारे में
HumanHash का संचालन Pilvia Oy करता है, एक फिनिश cloud कंपनी। हम इसे आंतरिक रूप से builds, deploys और snapshots लेबल करने के लिए उपयोग करते हैं, और algorithm सामान्य रूप से उपयोगी होने के कारण इसे खोल दिया है।
humanhash concept Zachary Voase की एक छोटी Python library के रूप में शुरू हुआ था। यह implementation Cloudflare Workers पर चलने वाला एक स्वतंत्र TypeScript rewrite है, अपनी curated wordlist के साथ।