dsh-tool-encoding:DSH 的 UTF-8 文本編碼、哈希與 UUID 工具插件

前言

在 DSH 智能體工作流裏,處理編碼、哈希和 UUID 是常見操作:讀取 API 響應裏的 base64 字段、構造 query 參數、校驗 sha256 摘要、生成 UUID。把這些操作放進 shell 外部命令,會引入進程調度和命令拼接成本。

omdsh-dev/dsh-tool-encoding 是 DSH 編碼/哈希工具插件,提供 UTF-8 文本的 base64/base64url/url/hex 編解碼、哈希和 UUID 操作。它定位爲零依賴、零進程、純函數。

這是什麼

  • 倉庫:omdsh-dev/dsh-tool-encoding
  • 維護者:omdsh-dev
  • 許可證:MIT
  • 適配版本:DSH 0.1.2-alpha.2(npm)
  • 核心定位:給 DSH Agent 提供一組文本編碼、哈希和 UUID 工具,覆蓋常見 base64/base64url/url/hex 場景。

核心功能

下面介紹已覈實的操作。所有 action 都按 UTF-8 文本處理,輸出爲字符串;輸入上限 1 MB,輸出上限 4 MB(字節)。

action 能力 示例
base64_encode / base64_decode RFC 4648 標準 base64,嚴格校驗 foobar → Zm9vYmFy
base64url_encode / base64url_decode JWT 風格 base64url,輸出無 padding;解碼兼容 +/ 與可選 padding U+FEFF → 77u_
url_encode / url_decode component 語義:空格編碼爲 %20,不是 +;!'()* 不轉義 a b → a%20b
hex_encode / hex_decode UTF-8 字節 hex;解碼結果必須合法 UTF-8 AB → 4142
hash md5/sha1/sha256/sha512 hex 摘要 sha256 空字符串 → e3b0c442...
uuid UUID v4 字符串,使用 crypto.randomUUID() 550e8400-...

校驗行爲包括:

  • base64 輸入執行 RFC 4648 canonical 校驗
  • UTF-8 解碼使用 fatal 模式
  • 孤立 surrogate 統一拒絕
  • hex_decode 的結果必須是合法 UTF-8
  • hash 算法白名單爲 md5、sha1、sha256、sha512

安裝與啓用

先安裝到 web profile:

dsh plugin --profile web add github:omdsh-dev/dsh-tool-encoding

經過上面的步驟,可以做配置檢查:

dsh --profile web --dump-config | grep tool-encoding

如果要在 dsh run 中驗證,注意 web 與 headless 是不同 profile,dsh run 默認使用 headless profile,因此該 profile 也需要單獨安裝。本次已覈實資料給出的安裝命令示例是 web profile;運行驗證命令如下:

dsh run "使用 encoding 工具把 hello 做 base64 編碼"

典型用法

可以在 DSH 會話裏選擇對應 action:

1、Base64:選擇 base64_encode,輸入 foobar,得到 Zm9vYmFy。

2、Base64URL:選擇 base64url_encode,輸入 U+FEFF,得到 77u_。

3、URL component:選擇 url_encode,輸入 a b,得到 a%20b。

4、Hex:選擇 hex_encode,輸入 AB,得到 4142。

5、哈希:選擇 hash,使用 sha256,輸入空字符串,得到 e3b0c442...。

6、UUID:選擇 uuid,返回類似 550e8400-... 的 UUID v4 字符串。

適用場景與注意

適合處理 UTF-8 文本編碼、摘要校驗和 UUID 生成。使用前需要注意:

  • 不要對機密材料使用本工具:tool 參數會記錄進會話日誌
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證
  • hash 僅摘要,無 HMAC/加鹽/密鑰派生;MD5/SHA-1 僅兼容性/非安全完整性校驗
  • 任意二進制(不可打印字節)編解碼需 v2 的 output: "utf8" | "hex" 模式
  • URL 是 component 語義;表單編碼(空格 → +)需獨立 action(v2)
  • web 與 headless 是不同 profile,安裝到 web 不會自動覆蓋 headless

結尾

dsh-tool-encoding 把 DSH 裏高頻出現的文本編碼、哈希和 UUID 操作收進一組工具,減少外部命令和轉義拼接。本次資料未提供目錄頁地址;GitHub 倉庫爲:

https://github.com/omdsh-dev/dsh-tool-encoding
羽毛球分组比赛记分
小程序二维码

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

小夜