chenxuhl/dsh-tool-jwt

chenxuhl★ 0TypeScript最后同步: 2026-08-19

在 GitHub 打开

DSH JWT tool: HS256 decode (header/payload/expiry status), sign, and verify — zero runtime dependencies, RFC 7515-verified

README 摘要

dsh-tool-jwt English DSH JWT 工具插件 —— HS256 JWT 的 解析(不验签) 、 签发 与 完整验签 。纯函数、零运行时依赖(仅 Node 内置 crypto )。 动机 后端开发日常:拿到一个 token 想看里面是什么、过期没有,但手算 base64url 解码 + JSON 解析 + 时间戳换算太慢;联调时需要造测试 token(网关/下游鉴权),手拼 header/payload/signature 容易错;验证 token 签名和有效期时,心算 HMAC 不可靠。 本插件提供确定性 JWT 工具,其中 decode 是差异化能力: 不验签 ,只做结构解析 + 过期状态计算(当前时钟对比),用于快速排查 token 内容。 verify 走完整校验链:算法检查( alg=HS256 )、常数时间签名比较( crypto.timingSafeEqual ,抗时序攻击)、过期判定(可选 leewaySeconds 时钟偏差容忍)。 安全模型 JWT 的签名伪造和算法混淆是真实威胁。防线: 1. 算法强制 : verify 仅接受 alg=HS256 ; alg=none 或任何非 HS256 直接拒绝,杜绝算法降级攻击 2. 常数时间签名比较 : crypto.timingSafeEqual ,签名字节逐位比较不泄露时序信息 3. 输入长度上限 :token ≤ 16KB、secret ≤ 4KB、payload 序列化后 ≤ 8KB——超限在入口直接拒绝,不进入处理 4. decode 不验签 :只做结构解析 + 过期状态计算,明确告知调用方"decode does not verify the signature" ⚠️ 本工具面向 开发/联调场景 (解码排查、造测试 token、验签)。不要把生产环境密钥粘贴到不可信会话。 其余边界:无效 base64url 直接报错(含输入截断);非 JSON header/payload 报错(含定位);非对象 JSON 报错; exp 非数字报错;secret 互斥检测( secret 与 secretBase64url 同时给即报错)。 工具声明 注册 jwt 工具( dsh-tool-jwt ,row id tool-jwt ),统一输出文本报告。 参数 类型 必填 说明 action string ✅ decode / sign / verify token string JWT 紧凑序列化( header.payload.signature )。decode/verify 必需 payload object 声明对象(sign 必需),如 {"sub":"u1","role":"admin"} 。 exp / iat 由 expiresInSeconds 管理 se…

在 GitHub 查看完整 README →
工具/开发dsh-pluginjwt

分类