{"id":"hash-digest-compute","version":"1.0.0","description":"Compute a message digest (SHA-2, SHA-3, BLAKE2/3, MD5, RIPEMD-160, Keccak-256) over encoded input bytes.","supported_operations":["sha256 of this text","compute md5 hash","sha3-256 digest","blake3 hash of a string","what is the sha512 of this","hex digest of this file content","keccak256 hash","חשב גיבוב sha256"],"unsupported_operations":["guessing the algorithm from a bare digest string (see hash-digest-verify to check a known digest instead)","password hashing for secure storage (see pbkdf2-compute; a bare digest is not a password hash)","streaming or incremental hashing across multiple calls"],"semantics":["algorithm selects the digest function. keccak-256 uses the original Keccak sponge domain-separation byte 0x01 (not the NIST SHA-3 0x06 padding) over the same rate/capacity as sha3-256, and produces a different digest than sha3-256 for the same input.","output_bytes is required for shake128 and shake256 (no fixed output length), optional for blake3 (default 32), and forbidden for every other algorithm, which has exactly one fixed digest length.","collision_broken is true only for md5 and sha1 (both practically broken for collision resistance); it is informational only and does not affect the computed digest.","input_bytes counts decoded bytes after input_encoding is applied, not the character length of text.","hex is lowercase with no separators; base64 is RFC 4648 section 4 padded; base64url is RFC 4648 section 5 unpadded.","input_encoding defaults to utf8; a lone UTF-16 surrogate in text under utf8 is invalid_input."],"limits":{"max_input_bytes":65536,"max_output_bytes":1024},"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":["md5","sha1","ripemd160","sha224","sha256","sha384","sha512","sha512-224","sha512-256","sha3-224","sha3-256","sha3-384","sha3-512","keccak-256","shake128","shake256","blake2b-256","blake2b-512","blake2s-256","blake3"]},"output_bytes":{"type":"integer","minimum":1,"maximum":1024}}},"output_schema":{"type":"object","additionalProperties":false,"required":["algorithm","input_bytes","output_bytes","hex","base64","base64url","collision_broken"],"properties":{"algorithm":{"type":"string","enum":["md5","sha1","ripemd160","sha224","sha256","sha384","sha512","sha512-224","sha512-256","sha3-224","sha3-256","sha3-384","sha3-512","keccak-256","shake128","shake256","blake2b-256","blake2b-512","blake2s-256","blake3"]},"input_bytes":{"type":"integer","minimum":0},"output_bytes":{"type":"integer","minimum":1},"hex":{"type":"string","pattern":"^[0-9a-f]+$","minLength":2},"base64":{"type":"string","pattern":"^[A-Za-z0-9+/]+=*$","minLength":1},"base64url":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","minLength":1},"collision_broken":{"type":"boolean"}}},"examples":[{"input":{"text":"abc","algorithm":"sha256"},"output":{"algorithm":"sha256","input_bytes":3,"output_bytes":32,"hex":"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad","base64":"ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=","base64url":"ungWv48Bz-pBQUDeXa4iI7ADYaOWF3qctBD_YfIAFa0","collision_broken":false}},{"input":{"text":"","algorithm":"md5"},"output":{"algorithm":"md5","input_bytes":0,"output_bytes":16,"hex":"d41d8cd98f00b204e9800998ecf8427e","base64":"1B2M2Y8AsgTpgAmY7PhCfg==","base64url":"1B2M2Y8AsgTpgAmY7PhCfg","collision_broken":true}},{"input":{"text":"","algorithm":"shake128","output_bytes":32},"output":{"algorithm":"shake128","input_bytes":0,"output_bytes":32,"hex":"7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26","base64":"f5wrpOiPgn1hYEVQdgWFPtc7gJP277yI6xpurPpm7yY=","base64url":"f5wrpOiPgn1hYEVQdgWFPtc7gJP277yI6xpurPpm7yY","collision_broken":false}}],"execute_url":"/v1/tools/hash-digest-compute/versions/1.0.0/execute"}