{"id":"hash-noncrypto-compute","version":"1.0.0","description":"Compute FNV-1/1a, MurmurHash3 or xxHash over encoded input bytes, with an optional seed for algorithms that take one.","supported_operations":["fnv1a hash of this string","murmurhash3 of this key","xxhash32 checksum","compute a shard key hash","non-cryptographic hash for a cache key","xxh64 of this text","גיבוב לא קריפטוגרפי לצורך שיוך למחיצה"],"unsupported_operations":["cryptographic or collision-resistant hashing (see hash-digest-compute)","xxh3-64/xxh3-128 (not in this version; use xxh32 or xxh64)"],"semantics":["algorithm fixes the output width: fnv1-32/fnv1a-32/murmur3-32/xxh32 are 32-bit; fnv1-64/fnv1a-64/xxh64 are 64-bit; murmur3-128-x64 is 128-bit as two 64-bit lanes.","fnv1-32/fnv1a-32 use offset basis 0x811c9dc5 and prime 0x01000193 with 32-bit unsigned wraparound; fnv1-64/fnv1a-64 use offset basis 0xcbf29ce484222325 and prime 0x100000001b3 with 64-bit unsigned wraparound. FNV-1 multiplies then XORs the byte in; FNV-1a XORs the byte in then multiplies.","fnv1-32, fnv1a-32, fnv1-64 and fnv1a-64 take no seed (the offset basis is fixed): seed must be omitted or exactly \"0\".","murmur3-32 and murmur3-128-x64 take a 32-bit unsigned seed (0..4294967295, per the reference uint32_t seed signature, even though murmur3-128-x64 output is 128 bits); xxh32 also takes a 32-bit unsigned seed; xxh64 takes a 64-bit unsigned seed (0..18446744073709551615).","seed is a decimal string (not a JSON number, to avoid IEEE-754 precision loss for 64-bit seeds); canonical form has no leading zeros (except the literal \"0\") and no sign. Omitting seed means \"0\".","hex for the 32-bit algorithms is 8 lowercase hex digits, big-endian, of the unsigned result; for the 64-bit algorithms it is 16 lowercase hex digits, big-endian. For murmur3-128-x64, hex is 32 lowercase hex digits: the 16 raw output bytes of the reference MurmurHash3_x64_128 implementation in their native layout -- the h1 lane as 8 little-endian bytes, then the h2 lane as 8 little-endian bytes -- not a single big-endian 128-bit integer; this matches Python's mmh3 package and other common bindings.","decimal is the unsigned base-10 string of the same value as hex for every algorithm with width <= 64 bits. For murmur3-128-x64 (width 128), decimal is null: the output is a 16-byte string, not a single scalar integer.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_input_bytes":16384},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["text","algorithm"],"properties":{"text":{"type":"string","maxLength":262144},"input_encoding":{"type":"string","enum":["utf8","hex","base64","base64url"],"default":"utf8"},"algorithm":{"type":"string","enum":["fnv1-32","fnv1a-32","fnv1-64","fnv1a-64","murmur3-32","murmur3-128-x64","xxh32","xxh64"]},"seed":{"type":"string","pattern":"^(0|[1-9][0-9]{0,20})$","default":"0"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["algorithm","seed","hex","decimal"],"properties":{"algorithm":{"type":"string","enum":["fnv1-32","fnv1a-32","fnv1-64","fnv1a-64","murmur3-32","murmur3-128-x64","xxh32","xxh64"]},"seed":{"type":"string","pattern":"^(0|[1-9][0-9]{0,20})$"},"hex":{"type":"string","pattern":"^[0-9a-f]+$"},"decimal":{"type":["string","null"],"pattern":"^(0|[1-9][0-9]*)$"}}},"examples":[{"input":{"text":"","algorithm":"fnv1-32"},"output":{"algorithm":"fnv1-32","seed":"0","hex":"811c9dc5","decimal":"2166136261"}},{"input":{"text":"abc","algorithm":"xxh32"},"output":{"algorithm":"xxh32","seed":"0","hex":"32d153ff","decimal":"852579327"}},{"input":{"text":"123456789","algorithm":"murmur3-128-x64"},"output":{"algorithm":"murmur3-128-x64","seed":"0","hex":"a4cc66db5e64843c05a11e3ac7faf899","decimal":null}}],"execute_url":"/v1/tools/hash-noncrypto-compute/versions/1.0.0/execute"}