跳到主要内容

ChaCha20 密钥生成器

生成加密随机的 ChaCha20 加密密钥 — 固定 256 位密钥,可选配 96 位 nonce,输出为 hex 或 Base64 格式。密钥完全在浏览器中生成,绝不传输。

输入

ChaCha20(RFC 8439,IETF 变体)在每次加密时需要一个唯一的 96 位 nonce 和密钥搭配使用。

输出

请妥善保管此密钥 — 应存储在密钥管理器中,而非代码或聊天中。

为用此密钥加密的每条消息使用一个新的、唯一的 nonce — 切勿重复使用 nonce。

这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/chacha20-key-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "outputFormat": "hex",
    "includeNonce": "true"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `chacha20-key-generator` tool (ChaCha20 Key Generator) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/chacha20-key-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="ChaCha20 密钥生成器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起

也可通过

使用指南

此工具的作用

它生成加密随机的 ChaCha20 加密密钥 — 始终为 256 位,符合 RFC 8439 — 以及可选的匹配 96 位 nonce。两者均格式化为十六进制或 Base64,可随时粘贴到配置文件、环境变量或加密库调用中。

ChaCha20 是什么?

ChaCha20 是由 Daniel J. Bernstein 设计的对称流密码,作为在没有专用 AES 加速的硬件(移动 CPU、许多嵌入式设备)上比 AES 更快、更简单的替代品。它通常与 Poly1305 消息认证器配对为 ChaCha20-Poly1305,这是在 RFC 8439 中标准化的 AEAD(认证加密)构造。它是 TLS 1.3 中支持或默认的密码套件,由 WireGuard VPN 协议使用,是 Google 首选的移动 TLS 连接密码。

与提供 128/192/256 位密钥大小的 AES 不同,ChaCha20 恰好有一个密钥大小:256 位(32 字节)。没有更小的密钥变体可供选择,因此此工具没有密钥大小选择器 — 它生成的密钥始终是正确的大小。

密钥 vs. Nonce

ChaCha20 密钥本身不足以加密任何内容 — 密码还需要 nonce("一次使用的数字"):对于给定密钥,必须永远不重复的值。RFC 8439 中标准化的 IETF 变体将 nonce 固定在 96 位(12 字节)(与 32 位内部块计数器配对,用于 128 位内部状态)。对同一密钥重复使用 nonce 会破坏 ChaCha20 的安全保证 — 看到用相同密钥/nonce 对加密的两条消息的攻击者可以恢复有关两个明文的信息。因此,大多数实际应用为每条消息生成新的随机 nonce(或使用计数器),从不保存 nonce 以供重复使用。

此工具可方便地与密钥一起生成 nonce,但请注意,单个生成的 nonce 输出不应用于多次加密 — 在实际应用中为每条消息生成新的 nonce。

如何使用

  1. 选择输出格式 — 十六进制(大写)或 Base64,取决于您的库或配置格式所需格式。
  2. 如果您需要与密钥一起使用相应的 96 位 nonce,请保持"也生成 nonce(96位)"选中,或取消选中以仅输出密钥。
  3. 点击生成密钥
  4. 使用复制按钮复制密钥(以及如果生成了 nonce)。

每当您需要新的密钥或 nonce 时再次点击"生成" — 每次点击都会从浏览器的加密安全随机数生成器 crypto.getRandomValues() 获取新的随机字节,而不是 Math.random(),后者速度很快但可预测且不适合任何与安全有关的事情。

常见问题

为什么没有密钥大小选项,不像 AES? ChaCha20 使用单一 256 位密钥大小指定 — 没有 128 位或 192 位变体可供选择,因此大小选择器将是一个只有一个真实选择的下拉列表。

我可以对多条消息重复使用生成的 nonce 吗? 不可以 — 使用相同的密钥和 nonce 加密两条不同的消息对 ChaCha20(以及任何流密码)是严重的安全故障。为每个加密操作生成(或派生)新的 nonce。

我应该使用哪种格式,十六进制还是 Base64? 两者都是相同字节的完全保真编码。十六进制更易于阅读和调试;Base64 大约短 25%,某些配置格式或环境变量大小限制更倾向于使用它。

此密钥对生产环境足够安全吗? 是的 — 底层随机性源是您的操作系统和浏览器用于 TLS 和其他安全关键操作的同一个 CSPRNG。您的系统安全仍然取决于保持密钥的秘密性、为每条消息生成新的 nonce,并适当地轮换密钥。

隐私

密钥和 nonce 使用 Web Crypto API 完全在您的浏览器中生成。它们永远不会发送到我们的服务器、记录或存储在任何地方 — 关闭或重新加载页面将永久丢弃它们,因此请在离开页面前将其保存到安全的地方。

chacha20keynonceencryptioncryptocipherrandomgenerator

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。