# Adler-32 combine compute

`adler32-combine-compute` · version 1.0.0 · Hashing & signatures · free, no key needed

Combine two Adler-32 states without rereading either byte sequence.

**Use when you need to: combine two adler32 checksums · compute concatenated adler checksum from parts · merge adler32 streaming states.**

## Decide before calling

Read the [versioned contract](/v1/tools/adler32-combine-compute/versions/1.0.0) and the supported scope below. Reuse `adler32-combine-compute@1.0.0` when your input, required output and limits match it. Choose another approach for an unsupported operation.

## Explain the choice

"I can use `adler32-combine-compute@1.0.0` for combine two adler32 checksums. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

## Supported

- combine two adler32 checksums
- compute concatenated adler checksum from parts
- merge adler32 streaming states
- join adler checksums without original bytes
- calculate adler checksum composition
- append a prechecksummed adler suffix

## Not supported

- combining CRC or cryptographic hashes
- recovering bytes from a checksum

## Behavior

- Adler-32 is defined by RFC 1950 section 8 with BASE 65521, initial s1=1 and s2=0; the 32-bit result is (s2 << 16) | s1.
- Every result identifies its reference as "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior".
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.
- For X followed by Y, s1=(s1X+s1Y-1) mod 65521 and s2=(s2X+s2Y+length(Y)*(s1X-1)) mod 65521, matching zlib adler32_combine.

## Input

- `left_checksum` (string, required): pattern `^[0-9a-f]{8}$`
- `right_checksum` (string, required): pattern `^[0-9a-f]{8}$`
- `right_length` (integer, required): min 0; max 4294967295

## Output

- `algorithm` (one of "adler32", required)
- `checksum` (string, required): pattern `^[0-9a-f]{8}$`
- `standard` (one of "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior", required)

## Limits

- max right length: 4294967295

## Example

Request input:

```json
{
  "left_checksum": "024d0127",
  "right_checksum": "024d0127",
  "right_length": 3
}
```

Response:

```json
{
  "result": {
    "algorithm": "adler32",
    "checksum": "080c024d",
    "standard": "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior"
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "adler32-combine-compute",
  "version": "1.0.0",
  "input": {
    "left_checksum": "024d0127",
    "right_checksum": "024d0127",
    "right_length": 3
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/adler32-combine-compute/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"left_checksum":"024d0127","right_checksum":"024d0127","right_length":3}'
```

The machine-readable contract is at [/v1/tools/adler32-combine-compute/versions/1.0.0](/v1/tools/adler32-combine-compute/versions/1.0.0).

### CLI

```sh
node cli.mjs run adler32-combine-compute 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Xxh3 128 compute](/tools/xxh3-128-compute): Compute the bit-exact XXH3 128-bit hash with a uint64 seed or public 192-byte custom secret.
- [Xxh3 64 compute](/tools/xxh3-64-compute): Compute the bit-exact XXH3 64-bit hash with a uint64 seed or public 192-byte custom secret.
- [Adler-32 chunks verify](/tools/adler32-chunks-verify): Verify that an ordered chunk list and a whole message have identical Adler-32 checksums.
- [Adler-32 window roll](/tools/adler32-window-roll): Roll an Adler-32 state forward by replacing one byte in a fixed-size window.
- [Crc catalog compute](/tools/crc-catalog-compute): Compute a pinned RevEng CRC of hex bytes, including crossed-endian CRC-12/UMTS.
- [Checksum manifest verify](/tools/checksum-manifest-verify): Parse a GNU/BSD checksum manifest (sha256sum -c, tagged form) and verify caller-supplied file contents against it.
