跳到主内容

dsh-tool-encoding/packages/dsh-tool-encoding

24Star1Fork1Issue0Watching

为 AI Agent 提供零依赖、纯函数的 UTF-8 文本编解码工具(base64/base64url/url/hex、哈希摘要、UUID v4),毫秒级返回字符串结果。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

ⓘ 此插件是大仓库 omdsh-dev/dsh-toolkit 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
MIT
分支
main
collectiondshdsh-plugintoolkitzero-dependency

安装

命令web profile
$ dsh plugin --profile web add github:omdsh-dev/dsh-toolkit#path:packages/dsh-tool-encoding

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 omdsh-dev/dsh-toolkit/packages/dsh-tool-encoding:先查看仓库 https://github.com/omdsh-dev/dsh-toolkit 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

本页文档对应子包 dsh-tool-encoding(meta 包 dsh-toolkit 下属 10 个独立工具之一)。

一句话定位

在 DSH 会话里为 UTF-8 文本做编码与摘要:base64、base64url、URL、hex 编解码,加上 md5/sha1/sha256/sha512 哈希和 UUID v4 生成。一次工具调用、毫秒级返回字符串,免去 AI Agent 起 bash 跑 base64/md5sum 时的引号转义与跨平台命名不一致问题。

核心能力

  • 标准 base64 与 base64url 互转(编码无空白、严格校验、canonical unused bits 检查)
  • URL component 语义编解码(区别于表单编码)
  • UTF-8 字节 hex 编解码,fatal 解码拒绝非法序列
  • md5/sha1/sha256/sha512 哈希(hex 输出)
  • UUID v4 字符串生成(基于 crypto.randomUUID())
  • 统一输入校验:拒绝孤立 surrogate、字节上限 1MB、UTF-8 解码非法序列立即报错

技术实现

  • 语言: TypeScript(ESM,type: module)
  • 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-invariants(均为 peerDependency,运行时零业务依赖)
  • 架构模式: 通过 cordis.patch.yml 以 tool-encoding row id 插入 profile layer stack;apply(ctx) 注册到 ctx.tools,由 cordis 依赖注入;核心逻辑是纯函数 executeAction(action, params),无 eval / new Function
  • 入口文件: packages/dsh-tool-encoding/src/index.ts(导出 apply / name / inject)
  • 运行时安全: Buffer / node:crypto / TextDecoder('utf-8', { fatal: true }) / encodeURIComponent 纯函数组合,错误统一带 encoding: 前缀

适用场景

当 AI Agent 在会话中遇到 base64 字段(JWT payload、API 响应片段)、要构造 URL 查询参数、想快速生成 UUID,或者要给一段文本做摘要(文件完整性校验、自增 ID 派生、缓存键)时使用。以前 Agent 只能 bash -c "echo ... | base64",进程开销 + 引号嵌套 + md5 / md5sum / shasum -a 256 跨平台不一致这三类坑要自己处理;现在直接调用 encoding 工具即可拿到规范字符串结果。

前置依赖与兼容性

依赖最低版本说明
DSH>= 0.1.0-rc.8(已验证)安装时通过 dsh.bundle.patch 写入 profile layer stack
Node.js^22.19.0 或 >=24.0.0由 package.json#engines 强制;base64url 编码依赖 Node 18.14+ 内建支持
平台跨平台无原生模块依赖(仅用 node:crypto / node:buffer),macOS / Windows / Linux 都可运行
外部依赖无运行时零第三方业务依赖

安装方式

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

配置项

本插件无需额外配置。安装即注册到 DSH 工具系统。工具参数(调用时传入)如下,供参考:

参数类型说明默认值
actionstring(必填)操作类型,枚举:base64_encode / base64_decode / base64url_encode / base64url_decode / url_encode / url_decode / hex_encode / hex_decode / hash / uuid无
inputstring待处理文本(hash 需要;hex/url 系列的 encode/decode 需要;uuid 不接受)无
algorithmstring哈希算法,枚举:md5 / sha1 / sha256 / sha512,仅 action=hash 时需要无

注:参数超长(>1MB)或解码输出超 4MB 时工具直接报错并终止,不会截断输出。

常见问题

Q: 这个插件能做加解密或签名吗?

A: 不能。插件只做单向摘要(md5/sha1/sha256/sha512)和对称编解码,没有 HMAC、加盐、密钥派生、对称加密这些能力,机密材料也不要用它处理(参数会进会话日志)。

Q: 能不能处理任意二进制(图片、压缩包这类)?

A: 当前 v1 是 UTF-8 文本工具:二进制内容只能先转成 hex 字符串再传给 base64_encode / hash。任意二进制编解码(带 output: "utf8" | "hex" 模式)需 v2。

Q: base64url 编码会输出带 = 填充的字符串吗?

A: 默认无 padding(JWT 风格,例如 "\uFEFF" → "77u_"),但解码端兼容带 padding 的输入。带 padding 时必须完整(残缺会拒绝),无 padding 时按数据长度自动补齐再解码。

Q: 输入有大小限制吗?

A: 有的。输入上限 1MB(1,000,000 UTF-8 字节),输出上限 4MB(按最坏膨胀率预检,超了直接拒绝不截断),单次工具调用超时 1000 毫秒。

Q: URL 编码用的是 application/x-www-form-urlencoded 那种语义吗?

A: 不是。url_encode / url_decode 用 component 语义(encodeURIComponent):空格变 %20 而不是 +,!'()* 不被转义,+ 解出来还是 +。表单编码(空格 → +)需 v2 独立 action。

Q: 如何卸载这个工具?

A: 与 DSH profile bundle 卸载一致:dsh plugin --profile web remove tool-encoding,web 与 headless 是两个独立 profile,需各自卸载。

Q: 报 encoding: invalid base64 input 是什么意思?

A: base64 输入不满足严格校验。可能原因:包含空白字符、= 没出现在末尾或超过 2 个、长度不是 4 的倍数、或者尾量子的 unused bits 不是 0(如 Zh== 这种非 canonical 编码)。多数 base64 工具输出的是标准编码,遇到此错通常是上游加白/换行的痕迹,或字符串被截断。

上手难度

入门 — 一次性添加命令即可使用,没有配置项,工具参数表里就 3 个字段,普通用户调一两次就明白 action + input 的组合规律。

已知问题与限制

  • 二进制(不可打印字节)内容需 v2 的 output: "utf8" | "hex" 模式;当前 v1 仅支持 UTF-8 文本
  • hash 仅摘要,无 HMAC/加盐/密钥派生;MD5 与 SHA-1 仅作兼容性/非安全完整性校验
  • url_encode / url_decode 是 component 语义(encodeURIComponent),表单编码(空格 → +)需 v2 独立 action
  • uuid action 拒绝任何额外参数(含拼写错误字段),多传参数会直接报错
  • 工具参数与返回会进入会话日志;切勿传入密钥、token、密码等机密材料

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/omdsh-dev/dsh-toolkit/packages/dsh-tool-encoding)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录