dsh-tool-jwt: DeepSeek Harness JWT 工具插件

DSH 生态奉行“一切皆插件”的理念。在智能体开发的后端场景中,开发者常遇到需要解析、伪造或验证 JWT 的情况:手动解码 header/payload 并计算过期时间效率低;联调时手拼签名容易出错;心算验证签名和有效期不可靠。dsh-tool-jwt 插件为这些场景提供了确定性的解决方案。

核心能力

dsh-tool-jwt 是由 chenxuhl 维护的 DSH 插件,提供 HS256 JWT 的解析(不验签)、签发与完整验签。该插件不依赖外部运行时库,仅使用 Node 内置 crypto 模块。

1. 解析(Decode)

解析 header 和 payload 为 JSON,并按当前时钟计算过期状态(valid / expired / no-exp-claim)。此功能不验签,仅做结构解析与过期状态计算,用于快速排查 token 内容。

2. 签发(Sign)

签发 token。会自动填充 iat(签发时间)和 exp(过期时间),支持通过 expiresInSeconds 参数指定有效期。

3. 验证(Verify)

完整校验链路:
* 算法检查:仅接受 alg=HS256,拒绝 alg=none 或其他算法。
* 签名验证:使用常数时间签名比较(crypto.timingSafeEqual),防止时序攻击。
* 过期判定:支持 leewaySeconds 参数,允许一定的时钟偏差容忍。

安装

使用 DSH 的 Profile Bundle 方式安装,插件会自动加入 profile 的 layer stack。

交互式(web)Profile 安装:

dsh plugin --profile web add github:chenxuhl/dsh-tool-jwt

一次性任务(headless)Profile 安装:

dsh plugin --profile headless add github:chenxuhl/dsh-tool-jwt

典型用法

以下命令展示了三个核心动作的具体调用方式。

解析 Token

查看 token 内容及过期状态,不验签。

dsh run "jwt { action: \"decode\", token: \"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1MSJ9.sig\" }"

签发 Token

构造测试用的 token,自动填充时间戳。

dsh run "jwt { action: \"sign\", payload: {\"sub\":\"u1\",\"role\":\"admin\"}, secret: \"topsecret\", expiresInSeconds: 3600 }"

验证 Token

校验签名与有效期,支持容错时间。

dsh run "jwt { action: \"verify\", token: \"...\", secret: \"topsecret\", leewaySeconds: 30 }"

适用场景与注意事项

本插件面向开发与联调场景(解码排查、生成测试 token、验签)。请勿在生产环境的不可信会话中粘贴生产环境密钥。

安全模型

  • 算法强制:verify 模式强制要求 alg=HS256,拒绝其他算法(如 alg=none),防止算法降级攻击。
  • 输入限制:插件对输入大小有严格限制,超限直接拒绝,不进行截断处理:
    • Token 长度 ≤ 16KB
    • Secret 长度 ≤ 4KB
    • Payload 序列化后 ≤ 8KB
  • 互斥检测:secret(字符串密钥)与 secretBase64url(二进制密钥)参数互斥,同时传入会报错。

生态背景

DSH 是 DeepSeek Harness 的简称,其插件生态与社区目录(https://www.skillhub.cn/plugins/chenxuhl/dsh-tool-jwt)独立运作,与 DeepSeek 或幻方无官方从属关系。

更多细节与源码,请访问 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜