
omdsh-dev/dsh-tool-encoding
30最近提交 2026年8月14日
dsh-tool-encoding DSH 插件
本插件为 DSH agent 提供编码和哈希工具,包括 base64、base64url、URL、hex 编解码,以及 MD5、SHA1、SHA256、SHA512 哈希和 UUID v4 生成。所有操作均为纯函数,严格校验,零依赖,不启动子进程。
如何安装 dsh-tool-encoding DSH 插件
dsh plugin --profile web add github:omdsh-dev/dsh-tool-encoding复制不会执行命令。安装 dsh-tool-encoding DSH 插件前请核对仓库和版本。
dsh-tool-encoding DSH 插件数据来源
dsh-tool-encoding DSH 插件快照日期:2026年8月16日
discovered
dsh-tool-encoding DSH 插件能做什么
- Base64 编解码,严格遵循 RFC 4648 规范,拒绝非 canonical 的 unused bits 和 padding 错误。
- Base64url 编解码(JWT 风格,无填充,兼容 +/ 和可选填充)。
- URL 组件编解码(空格编码为 %20,非 +;保留 !'()*)。
- Hex 编解码(UTF-8 字节,解码结果必须为合法 UTF-8)。
- 哈希摘要(MD5、SHA1、SHA256、SHA512),返回 hex 字符串,仅用于非安全目的。
- UUID v4 生成(基于 crypto.randomUUID())。
dsh-tool-encoding DSH 插件适合哪些场景
- 解码 API 响应中的 JWT payload base64 字段。
- 编码 URL 查询参数(组件语义)。
- 计算文件 SHA256 哈希以校验完整性。
- 生成分布式系统唯一标识符。
- 将二进制数据转换为 hex 表示用于日志或调试。
dsh-tool-encoding DSH 插件适合谁
- 需要可靠编码/哈希且避免子进程开销的 DSH agent 开发者。
- 构建需要内联编码、哈希或 UUID 生成的 AI 工作流的工程师。
dsh-tool-encoding DSH 插件的限制
- 所有输入输出均为 UTF-8 文本;二进制内容需用 hex 表示(v2 计划增加输出模式)。
- 哈希仅提供摘要,无 HMAC、加盐或密钥派生;MD5/SHA1 仅用于兼容性,非安全用途。
- URL 编码使用组件语义;表单编码(空格 → +)需单独 action(v2 计划)。
- 输入字节上限 1 MB,输出上限 4 MB(通过 Buffer.byteLength 强制)。
- 仅支持 UTF-8 编码;解码时遇到非法 UTF-8 字节将失败(fatal 模式)。
dsh-tool-encoding DSH 插件的仓库 README 摘录
以下文字摘自 dsh-tool-encoding DSH 插件的上游仓库 omdsh-dev/dsh-tool-encoding 的 README,版权归原作者,仅作引用。
DSH 编码/哈希工具插件 —— UTF-8 文本的 base64/base64url/url/hex 编解码 + 哈希 + UUID。零依赖、零进程、纯函数。 > 包名:`@deepseek-ai/dsh-tool-encoding`(独立 bundle,非 monorepo 集成形态);`lib/` 产物由仓库内 `npm run build`(tsc)生成并随仓库提交。 [](LICENSE) ## 动机 Agent 处理编码/哈希是日常高频操作:查看 API 响应里的 base64 字段(JWT payload)、构造 query 参数、校验文件完整性(sha256)、生成 UUID。当前做法 `bash -c "echo ... | base64"` 的问题:进程开销、**引号转义地狱**(base64 串嵌进 bash 命令再嵌进 JSON 参数,双层转义错误率极高)、跨平台工具命名不一致(`md5` vs `md5sum` vs `shasum -a 256`)。 ## 安全模型 无 `eval`、无 `new Function`。所有操作是 `Buffer`/`node:crypto`/`TextDecoder`/`encodeURIComponent` 的纯函数组合: - **UTF-8 完整性**:解码用 fatal 模式(`TextDecoder('utf-8', { fatal: true })`),非法字节抛 `encoding: invalid UTF-8 output`;合法 U+FFFD/控制字符不误伤(`00` NUL、`0a` 换行、`efbfbd` U+FFFD 均合法,`ff` 非法) - **base64 严格校验**:无空白、`=` 仅末尾且 ≤2、长度必须为 4 的倍数、**RFC 4648 canonical unused bits**(`Zh==` 等非 canonical 编码拒绝,防多串映射同文本) - **孤立 surrogate 统一拒绝**:所有文本输入过 `String.prototype.isWellFormed()`,避免静默替换与 URIError 行为不一致 - **字节上限**:输入 1 MB / 输出 4 MB(各 1,000,000 / 4,000,000 字节,`Buffer.byteLength`;输出上限为分配前预估 + 最终检查的保险丝) - **哈希算法白名单**:`Object.hasOwn` 查表(md5/sha1/sha256/sha512) - 错误统一 `encoding:` 前缀,不透传底层 `URIError`/`TypeEr
阅读完整 README仓库许可: MIT
dsh-tool-encoding DSH 插件常见问题
如何安装 dsh-tool-encoding 插件?
使用 DSH CLI:`dsh plugin --profile web add github:omdsh-dev/dsh-tool-encoding`(web profile),或替换 `web` 为 `headless` 用于 headless profile。也可以先在仓库中执行 `npm pack`,然后 `dsh plugin --profile web add ./dsh-tool-encoding-*.tgz`。安装后用 `dsh --profile web --dump-config | grep tool-encoding` 验证。
支持哪些哈希算法?
插件支持 MD5、SHA1、SHA256、SHA512。这些仅用于非安全用途,如文件完整性校验或兼容性。通过 `hash` action 的 `algorithm` 参数选择算法。
如果解码无效的 base64 会发生什么?
插件严格遵循 RFC 4648 校验 base64。它会拒绝空白字符、不正确的填充(填充必须位于末尾且不超过2个字符,长度必须是4的倍数)以及非 canonical 的 unused bits(例如 `Zh==`)。如果校验失败,会抛出以 `encoding:` 为前缀的错误。所有错误统一标准化,不泄露底层异常。
这个插件能生成 UUID 吗?
可以,插件提供 `uuid` action,使用 `crypto.randomUUID()` 返回 UUID v4 字符串。无需参数,直接返回字符串。适合在不启动子进程的情况下生成唯一标识符。
URL 编码是否将空格转为 +?
不,URL 编码使用组件语义,空格编码为 `%20`,而不是 `+`。`+` 字符在解码时原样保留。如果需要表单编码(空格转 `+`),需要单独 action(v2 计划中)。