{"success":true,"version":"v1","request":{"tool":"get_calculator_schema","calculator_id":"text-hash"},"result":{"entity_type":"calculator","id":"text-hash","calculator_id":"text-hash","canonical_url":"https://tttkmbb.com/developer/text-hash","name":"Text Hash Calculator","title":"Hash Calculator – MD5, SHA-1, SHA-256 and CRC-32 Digests of a UTF-8 Text String","category":"developer","category_name":"Developer & IT","tool_name":"calculate_text_hash","featured_mcp_tool":false,"description":"Computes the MD5 (RFC 1321), SHA-1 (RFC 3174), SHA-256 (FIPS 180-4) and CRC-32 (IEEE 802.3 polynomial) digests of a text encoded as UTF-8, plus its byte length; all algorithms are implemented in plain JavaScript.","use_when":"You need a checksum or digest of a short text to compare with a published value, generate a cache key or verify a test vector.","do_not_use_when":"You need to hash a file or binary data, a keyed MAC (HMAC), a password hash (use bcrypt/scrypt/Argon2), or a hash of more than 200,000 characters.","inputs":[{"name":"text","label":"Text","type":"string","required":true,"description":"The text to hash; it is encoded as UTF-8 without a trailing newline (echo -n).","example":"hello"}],"outputs":[{"name":"md5","label":"MD5","type":"string","decimals":4,"description":"128-bit MD5 digest, 32 lower-case hex characters (broken for collision resistance; checksums only)."},{"name":"sha1","label":"SHA-1","type":"string","decimals":4,"description":"160-bit SHA-1 digest, 40 hex characters (deprecated for signatures)."},{"name":"sha256","label":"SHA-256","type":"string","decimals":4,"description":"256-bit SHA-256 digest, 64 hex characters."},{"name":"crc32","label":"CRC-32","type":"string","decimals":4,"description":"CRC-32 (polynomial 0xEDB88320, as in zlib, PNG and Ethernet), 8 hex characters."},{"name":"crc32_decimal","label":"CRC-32 (decimal)","type":"integer","decimals":0,"description":"The same CRC-32 as an unsigned integer."},{"name":"byte_length","label":"UTF-8 bytes","type":"integer","unit":"bytes","decimals":4,"description":"Length of the UTF-8 encoding that was hashed."},{"name":"character_count","label":"Characters","type":"integer","decimals":4,"description":"Number of Unicode code points in the text."}],"input_schema":{"type":"object","properties":{"text":{"description":"The text to hash; it is encoded as UTF-8 without a trailing newline (echo -n).","type":"string","examples":["hello"]}},"additionalProperties":false,"required":["text"]},"output_schema":{"type":"object","properties":{"md5":{"description":"128-bit MD5 digest, 32 lower-case hex characters (broken for collision resistance; checksums only).","type":"string"},"sha1":{"description":"160-bit SHA-1 digest, 40 hex characters (deprecated for signatures).","type":"string"},"sha256":{"description":"256-bit SHA-256 digest, 64 hex characters.","type":"string"},"crc32":{"description":"CRC-32 (polynomial 0xEDB88320, as in zlib, PNG and Ethernet), 8 hex characters.","type":"string"},"crc32_decimal":{"description":"The same CRC-32 as an unsigned integer.","type":"integer"},"byte_length":{"description":"Length of the UTF-8 encoding that was hashed. Unit: bytes.","type":"integer","x-unit":"bytes"},"character_count":{"description":"Number of Unicode code points in the text.","type":"integer"}}},"formula":"digest = H(UTF-8(text)) for H ∈ {MD5, SHA-1, SHA-256}; CRC-32 = reflected CRC with polynomial 0x04C11DB7 (0xEDB88320 reversed), initial value 0xFFFFFFFF, final XOR 0xFFFFFFFF","method":"Reference implementations of RFC 1321, RFC 3174 and FIPS 180-4 on 32-bit words; results match sha256sum / md5sum of the same bytes without a newline. The empty string cannot be submitted (its digests are d41d8cd9…, da39a3ee…, e3b0c442…).","sources":[{"name":"RFC 1321 – The MD5 Message-Digest Algorithm","url":"https://www.rfc-editor.org/rfc/rfc1321","type":"standard","retrieved_at":"2026-09-24"},{"name":"RFC 3174 – US Secure Hash Algorithm 1 (SHA1)","url":"https://www.rfc-editor.org/rfc/rfc3174","type":"standard","retrieved_at":"2026-09-24"},{"name":"NIST FIPS 180-4 – Secure Hash Standard (SHS)","url":"https://csrc.nist.gov/pubs/fips/180-4/upd1/final","type":"standard","retrieved_at":"2026-09-24"}],"freshness":{"type":"static","max_age_seconds":null,"note":"Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output."},"examples":[{"name":"hello","inputs":{"text":"hello"},"expected":{"md5":"5d41402abc4b2a76b9719d911017c592","sha1":"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d","sha256":"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824","crc32":"3610a686","byte_length":5},"url":"https://tttkmbb.com/api/v1/calculate/text-hash?text=hello"},{"name":"The quick brown fox jumps over the lazy dog","inputs":{"text":"The quick brown fox jumps over the lazy dog"},"expected":{"md5":"9e107d9d372bb6826bd81d3542a419d6","sha1":"2fd4e1c67a2d28fced849ee1bb76e7391b93eb12","sha256":"d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592","crc32":"414fa339","byte_length":43},"url":"https://tttkmbb.com/api/v1/calculate/text-hash?text=The+quick+brown+fox+jumps+over+the+lazy+dog"}],"faq":[{"q":"Why does my result differ from echo text | md5sum?","a":"echo appends a newline, so the shell hashes one extra byte. Use echo -n or printf '%s' to hash the bare text."},{"q":"Which hash should I use?","a":"SHA-256 for integrity and signatures. MD5 and SHA-1 are cryptographically broken (collisions can be manufactured) and CRC-32 detects accidental corruption only."},{"q":"How are non-ASCII characters handled?","a":"The text is encoded as UTF-8 first, so 'é' contributes 2 bytes and an emoji 4; byte_length reports the encoded size."}],"tags":["md5","sha256","sha1","crc32","hash calculator","checksum"],"related":[{"calculator_id":"base64-size","reason":"Size of the same data once Base64-encoded."},{"calculator_id":"password-entropy","reason":"Strength of a secret rather than its digest."},{"calculator_id":"base-converter","reason":"Read hex digests as decimal or binary."}],"links":{"html":"https://tttkmbb.com/developer/text-hash","markdown":"https://tttkmbb.com/developer/text-hash.md","json":"https://tttkmbb.com/developer/text-hash.json","api":"https://tttkmbb.com/api/v1/calculate/text-hash","schema":"https://tttkmbb.com/api/v1/calculators/text-hash","openapi":"https://tttkmbb.com/openapi.json","mcp":"https://tttkmbb.com/mcp"},"version":"v1","updated_at":"2026-09-24"},"timestamp":"2026-09-24T03:44:32Z","next_actions":[{"tool":"run_calculator","calculator_id":"text-hash","reason":"Run Text Hash Calculator with the inputs above."}],"links":{"markdown":"https://tttkmbb.com/developer/text-hash.md"}}