tigtools

随机令牌生成器

为 API 密钥、会话令牌、webhook 密钥或配置文件生成随机密钥。令牌使用 crypto.getRandomValues 在浏览器中生成,不会发送到任何地方。

在浏览器中运行 无需注册

快速选择:

生成的令牌

    256 位
    每个令牌的熵
    43
    每个令牌的字符数

    使用方法

    1. 选择每个令牌包含多少随机字节。32 字节(256 位)是安全的默认值。
    2. 选择适合令牌使用场景的编码方式,也可以添加前缀,例如“myapp_live_”。
    3. 设置所需的令牌数量,然后复制单个令牌或点击“全部复制”。点击“重新生成”即可获取一组新令牌。

    工作原理

    令牌由 crypto.getRandomValues 生成的随机字节组成。这是内置于浏览器和操作系统中的加密安全随机数生成器。此工具绝不会使用 Math.random。

    对于十六进制、Base64 和 Base64URL,工具会按你选择的字节数生成数据并进行编码,因此,32 字节的令牌始终具有 256 位熵:编码后为 64 个十六进制字符、44 个 Base64 字符(包含一个 = 填充字符),或 43 个 Base64URL 字符。Base64URL 会将 + 和 / 替换为 - 和 _,并移除填充字符,因此无需转义即可用于 URL、文件名和 HTTP 标头。

    字母数字令牌只使用 A–Z、a–z 和 0–9,避免使用某些系统会特殊处理的字符。每个字符约提供 5.95 位熵,因此工具会生成足够多的字符,以达到至少所选的位数(256 位需要 43 个字符)。工具使用拒绝采样选择字符,确保 62 个字符出现的概率相同。

    前缀会作为纯文本添加,不会增加熵。像“sk_live_”这样的前缀能让泄露的密钥更容易被识别,也更容易被密钥扫描器发现。请将密钥存放在密码管理器或密钥存储服务中,不要写入源代码。

    示例

    Webhook 签名密钥

    32 字节的十六进制字符串会生成一个具有 256 位熵、长度为 64 个字符的密钥,可将其粘贴到发送方和接收方的配置中,用于 HMAC-SHA-256 签名。

    带有易识别前缀的 API 密钥

    选择 24 字节、字母数字和前缀“acme_live_”。每个密钥的格式都是 acme_live_ 后接 33 个字母和数字,至少具有 192 位熵,并且在日志或密钥扫描器中很容易识别。

    适用于 URL 的重置令牌

    16 字节的 Base64URL 字符串会生成一个长度为 22 个字符的令牌(128 位),可直接用于 /reset?token=… 这样的链接,无需进行百分号编码。

    常见问题

    密钥应该有多少字节?

    对于会话 ID 等令牌,128 位(16 字节)足以让猜测变得不可能。对于签名密钥等长期使用的密钥,通常建议使用 256 位(32 字节),与 SHA-256 的输出长度一致。

    应该选择哪种编码?

    对于相同的字节数,熵是一样的;不同的只是文本形式。兼容性优先时使用十六进制;需要在 URL 和标头中使用较短令牌时使用 Base64URL;系统不接受标点符号时使用字母数字。

    令牌会被存储或记录吗?

    不会。令牌会在此浏览器标签页中生成,离开页面后便会消失。它们不会发送到服务器,也不会纳入分析统计。

    可以把这些令牌用作密码吗?

    可以。它们的随机性足够强,但网站通常要求混合使用多种字符类型。密码生成器可以直接让你设置这些规则。

    隐私

    令牌使用 crypto.getRandomValues 在浏览器中生成,不会上传、存储、记录或发送到分析服务;系统只会记录一条匿名的工具使用事件。