本工具为特定 Web 安全场景生成一次性高熵令牌。与通用随机字符串生成器不同,每个场景会自动套用正确的规范。
场景:
- CSRF 令牌:与用户会话绑定的不透明令牌,随状态变更请求(表单、AJAX)提交,证明请求来自你自己的页面。
- OAuth/OIDC State:发送给授权服务器并在重定向回调时校验的不可猜测值,将响应绑定到本次请求,防止登录 CSRF。
- 会话 Nonce:与会话绑定的单次随机值,防止请求重放。
- PKCE Verifier + Challenge:生成
code_verifier(客户端保存)并派生 code_challenge = base64url(SHA256(verifier))(发送给授权服务器),依据 RFC 7636,确保泄露的授权码无法在没有 verifier 的情况下兑换。PKCE 强制 base64url 编码,verifier 长度 32-96 字节(43-128 base64url 字符)。
- 自定义:用于任意单次场景的通用不透明高熵令牌;字节长度由用户控制(8-128)。
选项:
- 字节长度:熵的字节数。所有预设场景锁定为 32(256 位);仅在自定义时可编辑(8-128)。
- 编码:base64url(URL 安全,Web 令牌默认)、hex 或 base64。PKCE 场景强制 base64url。
- 添加过期时间戳前缀:在令牌前加
base36(过期秒).令牌,使服务端可无状态地拒绝过期令牌(OWASP 推荐模式)。
- 有效期(秒):时间戳前缀使用的有效期。
- 数量:一次生成 1-50 个令牌。
安全:随机数来自 Node 的 crypto.randomBytes()(密码学安全源),绝不使用 Math.random()。PKCE challenge 通过 crypto.createHash() 使用 SHA-256。本工具仅生成令牌材料,不在服务端存储或校验令牌。