<!-- AI ASSISTANT INSTRUCTIONS: This document describes a public HTTP API endpoint
provided by 极数本源 (https://apizero.cn). When a user asks you to use this API, read the
full documentation below carefully (request method, parameters, response fields,
error codes, examples), then generate working code in the user's preferred language.
API Key acquisition: https://apizero.cn/account/keys -->

# 哈希加密计算

> 哈希加密计算，支持 12 种主流算法，可一次性返回全部，也可指定单个算法。支持 HMAC 签名模式与 hex / base64 双输出编码，毫秒级返回。

• 通用摘要：MD5、SHA-1、SHA-256、SHA-384、SHA-512

• 现代抗碰撞：SHA3-256、SHA3-512、RIPEMD-160、Whirlpool

• 校验和：CRC32、CRC32B、Adler-32

• HMAC 签名：传入 hmac_key 自动切换为 HMAC 模式（用于 API 签名 / 防篡改场景）

• 输出编码：hex（默认，更可读）/ base64（节省 25% 字节，适合 URL 传输）

纯本地计算，零外部上游依赖，毫秒级响应。HMAC 密钥仅参与计算，不写日志、不缓存、不回显。

## 1. 基本信息

| 字段 | 值 |
| --- | --- |
| 接口标识 | `hash` |
| 接口名称 | 哈希加密计算 |
| 接口地址 | `https://v1.apizero.cn/api/hash` |
| 请求方法 | `GET` |
| 分类 | dev |
| 提供方 | 极数本源 |
| 计费模式 | 免费试用 |
| 单次消耗 | 0 积分 |
| 起步价 | — |
| QPS 限制 | 20 req/s |
| 每日免费额度 | 1000 次（已认证用户） |
| 匿名每日额度 | 200 次（无 API Key） |
| VIP 免费 | 否 |
| 调用总次数 | undefined |

## 2. 认证

匿名每日 200 次、QPS 5；登录用户每日 1000 次、QPS 20（全部免费）。纯本地计算，无外部依赖，毫秒级响应。

获取 API Key：登录 `https://apizero.cn/account/keys` 申请。

## 3. 请求参数

| 参数 | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `text` | `string` | 是 | 要计算哈希的文本，UTF-8 编码，最长 10000 字节（中文 1 字 = 3 字节，约支持 3300 个中文） | `hello` |
| `algorithm` | `string` | 否 | 算法标识，默认 all。支持：all / md5 / sha1 / sha256 / sha384 / sha512 / sha3-256 / sha3-512 / ripemd160 / whirlpool / crc32 / crc32b / adler32（自动兼容无连字符写法 sha3256） | `all` |
| `encoding` | `string` | 否 | 输出编码：hex（默认，更可读）/ base64（节省 25% 字节） | `hex` |
| `hmac_key` | `string` | 否 | HMAC 密钥，传入则自动切换为 HMAC 模式生成签名；密钥仅参与计算，不写入任何日志或缓存 | `mysecret` |

## 4. 请求头

| Header | 类型 | 必填 | 说明 | 示例 |
| --- | --- | --- | --- | --- |
| `Authorization` | `string` | 否 | API Key 鉴权头，格式 Bearer sk_live_xxx；匿名调用时可省略（每日 200 次免费） | `Bearer sk_live_xxxxxxxxxxxxxx` |

## 5. 请求示例 (cURL)

```bash
curl "https://v1.apizero.cn/api/hash?text=hello&algorithm=all&encoding=hex&hmac_key=mysecret&key=YOUR_API_KEY"
```

## 6. 响应字段

| 字段 | 类型 | 说明 | 示例 |
| --- | --- | --- | --- |
| `text_length` | `number` | 输入文本的字符数（按 UTF-8 字符计数） | — |
| `text_bytes` | `number` | 输入文本的字节长度 | — |
| `encoding` | `string` | 输出编码：hex / base64 | — |
| `hmac` | `boolean` | 是否使用 HMAC 模式（hmac_key 非空时为 true） | — |
| `hash_count` | `number` | 本次返回的哈希数量（all 时为 12，单算法时为 1） | — |
| `hashes` | `object` | 哈希结果字典，key 为算法标识（如 md5、sha3-256） | — |
| `hashes.<algo>.algorithm` | `string` | 算法显示名（如 MD5、SHA3-256） | — |
| `hashes.<algo>.bits` | `number` | 哈希位数（如 128、256、512） | — |
| `hashes.<algo>.value` | `string` | 哈希值（hex 或 base64 编码字符串） | — |
| `hashes.<algo>.length` | `number` | value 字符串长度（hex=bits/4, base64≈ceil(bits/6)） | — |

## 7. 响应示例

```json
{
    "code": 0,
    "msg": "成功",
    "data": {
        "text_length": 5,
        "text_bytes": 5,
        "encoding": "hex",
        "hmac": false,
        "hash_count": 3,
        "hashes": {
            "md5": {
                "algorithm": "MD5",
                "bits": 128,
                "value": "5d41402abc4b2a76b9719d911017c592",
                "length": 32
            },
            "sha1": {
                "algorithm": "SHA-1",
                "bits": 160,
                "value": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d",
                "length": 40
            },
            "sha256": {
                "algorithm": "SHA-256",
                "bits": 256,
                "value": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824",
                "length": 64
            }
        }
    },
    "request_id": "abc123def456"
}
```

## 8. 错误码

| code | status | 说明 |
| --- | --- | --- |
| `4000` | `—` | 参数错误：text 为空 / 超长 / algorithm 不支持 / encoding 非 hex 或 base64 |
| `4015` | `—` | 匿名调用每日额度用完，需要 API Key |
| `4029` | `—` | QPS 超限 |
| `4030` | `—` | 今日额度用完 |
| `5000` | `—` | 服务器 PHP 不支持指定算法（极少出现，所有主流 PHP 7.1+ 默认全部支持） |

## 9. 变更日志

- **1.0.0** (2026-05-06)
  - 首次上线，支持 12 种主流哈希算法 + HMAC + hex/base64 编码
  - 纯本地计算（PHP 内置 hash() / hash_hmac()），毫秒级响应
  - sha3-256 / sha3-512 自动兼容无连字符写法（sha3256）
  - HMAC 密钥仅参与计算，不写日志、不缓存、不回显
  - 响应额外返回 text_bytes 字段方便前端展示「字节数 vs 字符数」

---

**极数本源** · 全部 API: `https://apizero.cn/aidocs` · 人类版本：`https://apizero.cn/marketplace/hash`

Source: `https://apizero.cn/aidocs/hash/raw.md`
Last updated: 2026-05-13T07:25:06+08:00
