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。
如何使用
- 选择输出格式 — 十六进制(大写)或 Base64,取决于您的库或配置格式所需格式。
- 如果您需要与密钥一起使用相应的 96 位 nonce,请保持"也生成 nonce(96位)"选中,或取消选中以仅输出密钥。
- 点击生成密钥。
- 使用复制按钮复制密钥(以及如果生成了 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 完全在您的浏览器中生成。它们永远不会发送到我们的服务器、记录或存储在任何地方 — 关闭或重新加载页面将永久丢弃它们,因此请在离开页面前将其保存到安全的地方。