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 倉庫。

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

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

小夜