…
…
…
32 个 CSPRNG 字节,按 Curve25519 进行钳位 · 公钥 = 私钥标量 × 基点 9 · 本地生成,绝不发送 · 密钥刻意不编码进分享 URL。
功能说明
WireGuard 密钥生成器完全在你的浏览器中创建 WireGuard 隧道所需的加密密钥。它从设备的 CSPRNG 中提取 32 字节,按 Curve25519 规则进行 clamp(key[0] &= 248; key[31] &= 127; key[31] |= 64),并通过乘以曲线基点推导出配对的公钥 — 一个纯 BigInt 实现的 RFC 7748 Montgomery ladder,运行于 GF(2²⁵⁵ − 19) 之上。你还可以生成一个可选的预共享密钥(PSK),并复制一份可直接编辑的 wg-quick 配置模板。
两把密钥都以带填充的标准
Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
输出 — 44 个字符 — 正是wg setconf、wg-quick 和所有 WireGuard 管理工具期望的格式。不上传任何内容:生成、推导和复制全部在本地完成,并且刻意从不把密钥编码进页面 URL。
使用方法
- 按下生成(Generate)(或 Regenerate)创建一对新密钥。
- 把**私钥(Private key)**复制进你自己的设备配置的
[Interface]段 — 永远不要分享它。 - 复制**公钥(Public key)**并交给对端或服务器管理员 — 它可以安全分享。
- 打开**预共享密钥(Pre-shared key)**开关可获得一个可选的 32 字节 PSK;把相同的值放进双方的配置可获得额外的对称保护。
- 复制配置模板(Config template),然后把
<PEER_PUBLIC_KEY>、Address和Endpoint替换为你服务器的值。
示例
一对已知密钥(RFC 7748 §6.1 “Alice” 测试向量)
Private key: dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
Public key: hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
把这把私钥喂给任何 X25519 实现都会得到恰好这把公钥 — 本工具执行的推导在单元测试中就是对照这样的向量验证的。新生成的密钥对是同样 44 字符格式的随机输出。
带预共享密钥的配置模板
[Interface]
PrivateKey = dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
PublicKey = hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
Address = 10.0.0.2/32
[Peer]
PublicKey = <PEER_PUBLIC_KEY>
PresharedKey = 7Xk2Pq9wLmY4vRtNz8sB1cHf6Gj3Kd0eA5uOi2WxSbE=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
轮换密钥
Regenerate → replace only the PrivateKey line in your config →
send the new Public key to the peer admin → restart the tunnel.
补充说明
- 为什么要 clamp? 低 3 位和最高位被清零、第 254 位被强制置一,因此每把私钥都是有效的标量,可与任何 Curve25519 实现协作,并防御小群攻击(small-subgroup attack)。
- 预共享密钥在 Diffie-Hellman 交换之上增加一个 256 位对称秘密 — 对未来针对已录制流量的量子攻击有用。相同的 PSK 必须出现在两个对端的配置中,且它从不被 clamp(它作为原始密钥材料使用)。
- 私密: 100% 在客户端运行;CSPRNG 和曲线运算从不接触网络,密钥也不写入 URL 或存储。
- 相关工具: Password Generator、Secure Token Generator、
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Generator。