# 令牌、会话与 2FA 工作流工具

把 PKCE 与 nonce 生成、JWT/JWK 检查、HMAC 验签、OTP 与 TOTP 测试，以及适合认证排障的标识符工具聚合到一个真实登录流程专题里。

> 标准页面: https://elysiatools.com/zh/hubs/token-session-and-2fa-workflows

- **分类:** secure

- **关键词:** 令牌工作流工具, session nonce 与 pkce 生成器, jwt 检查与安全审计, jwk 与签名密钥工具, hmac 令牌验证, totp 与 otp 测试工具, oauth openid connect 认证案例, uuid 与认证标识符生成器

## 概述

这个专题面向那类“认证流程设计上没问题，但实际登录就是不稳”的场景。你可能要为 OAuth 回调重新生成 PKCE 材料，检查身份提供方返回的 JWT，确认 JWK 或 HMAC 密钥是不是和当前签名行为一致，测试一次性验证码在不同设备上的时间漂移，或者为了复现问题补上更清晰的请求与会话标识。它把这些短生命周期的认证材料放到同一条排障链路里，帮助团队从“登录流程感觉不对”更快走到可验证的浏览器登录、移动端回调、API 认证交接和 MFA 恢复场景。

## 工具

- 安全随机生成器: 生成密码学安全的随机密钥材料，由熵位预算驱动——请求 N 位熵，输出 hex/base64/base64url。也支持通过 crypto.randomInt（内部拒绝采样，无模偏差）从自定义字母表生成字符串。对任何密钥/口令/令牌，请用本工具替代基于 Math.random 的工具。
- Nonce 与令牌生成器: 为 Web 安全场景生成密码学安全的一次性令牌——CSRF 令牌、OAuth/OIDC state 参数、会话 nonce、以及 PKCE code_verifier/code_challenge（S256）。使用 crypto.randomBytes，绝不使用 Math.random。
- Base64URL 编解码: Base64URL（URL 安全的 Base64 变体，用于 JWT/JWS/JWE）编解码，并支持标准与 URL 安全 Base64 互转
- JWT令牌生成器: 生成带有自定义声明和算法的JWT令牌
- JWT 解码器: 解码 JWT 令牌
- JWT 解码与安全审计器: 解码 JWT Header/Payload，校验 HS256 或 RS256 签名，并检查算法、过期时间与敏感 claim 风险
- JWK 生成与解析器: 生成 RSA、EC（P-256/P-384/P-521/secp256k1）与 OKP（Ed25519/Ed448/X25519/X448）的 JSON Web Key，或解析已有 JWK 以查看参数、指纹与元信息
- 密钥对生成器: 为各种加密算法生成公钥/私钥对
- RSA 密钥对生成器: 用 Node 的 crypto.generateKeyPairSync() 生成匹配的 RSA 公私钥对，PEM 格式。支持 2048/3072/4096 位，PKCS#8（推荐）或 PKCS#1 私钥格式，可用口令加密私钥。密钥在本地生成，不会外传。
- HMAC 生成与验证器: 使用 SHA-1/SHA-2/SHA-3/BLAKE2 对消息+共享密钥计算 HMAC 消息认证签名，或对收到的签名做验证（恒定时间比对），并内置 Stripe / Slack / GitHub 的 webhook 预设
- TOTP / HOTP 离线动态密码生成器: 从 base32 共享密钥生成 RFC 6238 TOTP（基于时间，6/8 位、30/60 秒步长）与 RFC 4226 HOTP（基于计数器）一次性密码，完全离线，支持 HMAC-SHA1/256/512，并导出 otpauth:// URI 以便导入 Google Authenticator / Authy
- 数字 OTP 生成器: 生成密码学安全的一次性数字验证码（短信 / 邮件验证、抽奖码、活动 PIN），可配长度（3-10 位）、批量输出、可选排除混淆数字及过期倒计时。使用 crypto.randomInt，而非 Math.random。
- UUID 生成器: 生成 UUID（v1、v4、v5）
- UUID验证器: 验证UUID格式，检测版本，分析UUID结构包括变体、时间戳和节点信息

## 示例

- JWT 示例: 从基础令牌结构到高级安全实现的全面JWT示例
- OAuth 2.0 示例: OAuth 2.0 实现示例，包括授权流程、客户端配置和安全最佳实践
- OAuth 2.0/OpenID Connect 示例: OAuth 2.0 授权框架和 OpenID Connect 认证协议示例
- WebAuthn 无密码认证: Web Authentication API 示例，包含生物识别认证、安全密钥和无密码登录系统

## 常见问题

### 这个专题主要帮助排查哪些认证问题？

它主要覆盖真实登录链路中的故障，比如 PKCE 或 state 不匹配、JWT 结构异常、JWK 或 HMAC 签名结果不符合预期、TOTP 漂移、OTP 校验失败，以及会话或请求标识不清导致的回调追踪困难。

### 它和更宽泛的认证安全或密码专题有什么区别？

这个专题聚焦的是密码选型之后、真实登录与 API 认证流程里会流转的短生命周期材料，例如 nonce、PKCE、JWT、JWK、HMAC 签名、一次性验证码，以及便于追踪的标识符。

### 什么时候该用 OTP，什么时候该用 TOTP/HOTP？

当你需要短信、邮件、客服或 QA 场景里的独立验证码时，用通用 OTP 工具。若你需要测试身份验证器式的共享密钥流程、比较时间窗口，或排查计数型设备行为，就用 TOTP/HOTP 工具。

### 为什么 JWT/JWK 旁边还要放 UUID 和 Base64URL 工具？

因为认证问题经常不是 token 主体本身出错，而是周边链路出了偏差。UUID 适合关联请求与会话，Base64URL 则适合核对编码后的 header、claims、PKCE 值，以及和 JWK 相关的 token 片段。

## 相关内容

- [认证、密码与令牌安全工具](https://elysiatools.com/zh/hubs/auth-token-security): 在同一个安全专题中完成密码生成与校验、JWT 检查、密码哈希方案对比，以及认证相关的基础安全审查。
- [密钥生成、签名与可信性校验工具](https://elysiatools.com/zh/hubs/key-generation-signature-verification): 在一个聚焦可信性检查的专题中，集中处理密钥生成、JWT 与 AGEX 签名检查、PDF 与 TLS 证书验证，以及哈希比对。
- [API 请求复现、重放与运行时调试工具](https://elysiatools.com/zh/hubs/api-request-replay-and-debugging): 把 cURL 转代码、Webhook 捕获重放、HMAC 校验、响应差异对比、请求头审查、TLS 证书排查和请求链路调试放到一个聚焦的 API 专题里。
- [API 契约测试、Mock 与 Schema 审查工具](https://elysiatools.com/zh/hubs/api-contract-testing): 把 OpenAPI 转成文档和类型，生成 Mock，校验真实响应，并在一个专题里集中检查 Schema 破坏性变更。
