前言¶
在 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-8hash算法白名單爲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