API 密钥生成器

生成带自定义前缀(如 sk_live_)的安全随机 API 密钥。支持字母数字、十六进制、Base64url 或 Base32,长度任意,并显示以位为单位的熵。

可选,例如 sk_live_ 或 myapp_。前缀让密钥易于识别,也更容易在泄露的代码中被检测到。

输出

熵 190 位 · 每个值 35 个字符

使用 crypto.getRandomValues 在本地生成,不会发送或存储任何内容。请把密钥放在环境变量或密钥管理服务中,切勿写进源代码。

什么是 API 密钥生成器?

为你自己的服务创建随机 API 密钥:默认是带 sk_ 前缀的 32 个字母和数字,就像许多 SaaS 产品签发的密钥一样。你可以更改前缀、字符集(字母数字、十六进制、Base64url、Base32…)、长度以及要生成的数量。每个密钥的熵都会显示出来,方便你确认它足够强。

如何使用 API 密钥生成器

  1. 设置 前缀(例如 sk_live_ 或 myapp_),也可以留空。
  2. 选择 格式 和 长度(字符数;十六进制/Base64 格式则为随机字节数)。
  3. 设置需要的 数量,点击 重新生成 获取新的密钥。
  4. 复制密钥,并在服务器上以哈希形式存储。

示例

输入
Prefix sk_, Letters and digits, Length 32
输出
sk_7M1R2Vhc2z6q19CVQAGIOp87bJXcY0wA

190 位熵。内容是随机的,你得到的密钥会不同。

何时使用 API 密钥生成器

适合在构建 API 并需要向客户端签发密钥时,或服务要求你自定义共享密钥时使用。目标是至少 128 位的熵。不要用它来创建需要人手动输入的密码,也不要把生成的密钥以明文形式存放在数据库中。

API 密钥生成器 的工作原理

随机性来自 crypto.getRandomValues。对于字符格式,每个字符都通过拒绝采样从字母表中均匀选取,因此熵为 长度 × log2(字母表大小)——32 个字母数字字符可得 32 × 5.95 ≈ 190 位。对于字节格式,工具抽取 N 个随机字节并编码(十六进制、Base64、Base64url 或 RFC 4648 Base32),得到 8 × N 位。前缀加在前面,不增加任何熵。

常见用例

  • 向 SaaS 产品的客户签发 API 密钥
  • 为内部服务之间的调用创建密钥
  • 生成 webhook 签名密钥
  • 为预发布环境制作测试密钥

安全提示

密钥在本地生成,绝不会被传输。只向密钥的所有者展示一次,存储它的哈希,并让用户可以撤销和轮换密钥。

常见问题

API 密钥应该多长?

至少 128 位熵:22 个以上的字母数字字符,或 16 个以上的随机字节。默认的 32 个字母数字字符约有 190 位。

为什么要加前缀?

sk_live_ 之类的前缀能明确密钥的用途,帮助用户避免混用测试和正式密钥,也让密钥扫描工具(如 GitHub secret scanning)能发现泄露的密钥。

服务器上应该如何存储 API 密钥?

只存储每个密钥的哈希(例如 SHA-256),请求到达时比较哈希,就像对待密码一样,这样数据库泄露也不会暴露可用的密钥。

推荐的下一步

探索更多分类