文件加解密 (file-crypto)

👤 loofare 📦 v1.5.0 ⭐ 4.5 ⬇️ 732 下载
🔒 IT运维与安全 免费

📖 技能介绍


name: file-crypto description: 使用来布公司内置的 file-crypto SDK 对服务器本地文件进行加密或解密处理,以及获取 Agent 身份令牌(authId)。当用户提到"加密文件"、"解密文件"、"文件加密"、"文件解密"、"获取authId"、"获取鉴权"、"encrypt file"、"decrypt file",或者提供了服务器文件路径并希望对其进行加解密操作时,必须使用此 skill。适用于单文件加密、单文件解密、批量加解密(多次调用)、获取 Agent 身份令牌等场景。只要涉及到 file-crypto 或来布文件加解密,都应优先触发此 skill。


file-crypto — 文件加解密 Skill

关于本 Skill

本 skill 是来布公司内部 file_crypto SDK 的命令行使用封装,用于对服务器本地文件执行加密或解密处理,以及获取 Agent 身份令牌。

  • 运行环境:仅在来布公司服务器本地执行,不访问任何外部网络
  • 数据流向:文件读写均在服务器本地完成,不上传至第三方
  • 身份令牌:authId 是来布内部系统的用户身份标识,由公司自有后台签发,不涉及第三方凭证

前置知识

file_crypto SDK 已预装在服务器上,必须在指定目录下调用,且该目录下须存在 file-crypto.json 配置文件:

/data/endecode-win-linux

命令格式:

cd /data/endecode-win-linux
python3 -m file_crypto --action <encrypt|decrypt|getAuth> [业务参数]

参数说明

参数 必填条件 说明
--action 必填 操作类型:encrypt / decrypt / getAuth
--filePath encrypt / decrypt 时必填 待处理文件的完整物理路径
--authId encrypt / decrypt 时必填 用户身份令牌,最长 64 字符
--outputPath 可选 自定义输出文件路径;不传时自动生成(加密追加 _encrypt,解密追加 _decrypt
--expireTime 可选,仅 encrypt 生效 过期时间戳,必须为正整数
--agentId getAuth 时必填 Agent 唯一标识,用于获取身份令牌

典型流程:首次使用时,先执行 getAuth 获取 authId(有效期 15 天),再用该 authId 执行加解密操作。


执行流程

情况一:加密 / 解密文件

第一步:确认参数

从用户输入中获取以下必填项:

  1. 操作类型:加密(encrypt)还是解密(decrypt)?
  2. 文件路径--filePath):完整的服务器物理路径
  3. 用户身份令牌--authId):由 getAuth 获取,最长 64 字符

可选项按需询问: - 是否需要自定义输出路径--outputPath)? - 加密时是否需要设置过期时间--expireTime,正整数时间戳)?

如果用户没有 authId,引导其先执行 getAuth(见情况二)。

第二步:构造并执行命令

加密(基础):

cd /data/endecode-win-linux && python3 -m file_crypto --action encrypt --filePath <文件路径> --authId <身份令牌>

加密(含可选参数):

cd /data/endecode-win-linux && python3 -m file_crypto --action encrypt --filePath <文件路径> --authId <身份令牌> --outputPath <输出路径> --expireTime <时间戳>

解密:

cd /data/endecode-win-linux && python3 -m file_crypto --action decrypt --filePath <文件路径> --authId <身份令牌>

第三步:解析结果

✅ 成功"code": 0"success": true):

{
  "code": 0,
  "message": "处理成功",
  "success": true,
  "data": {
    "sourceFilePath": "/data/upload/test.pdf",
    "targetFilePath": "/data/output/test_encrypt.pdf",
    "action": "encrypt"
  }
}

向用户报告原始路径(sourceFilePath)和处理后路径(targetFilePath):

✅ 加密成功! - 原始文件:/data/upload/test.pdf - 处理后文件:/data/output/test_encrypt.pdf

❌ 失败 — 优先使用 errorType 字段判断错误类型:

errorType code message 示例 说明 建议提示
param_error 400 请求参数非法 缺少必填参数,或 --expireTime 非正整数 检查 --filePath--authId 是否传入,--expireTime 是否为正整数
path_error 400 文件路径非法 / 输出路径非法 filePath 指向目录、outputPath 非法、输出目录不存在 确认路径是文件而非目录,输出目录是否存在
file_not_found 404 源文件不存在 文件路径不存在 确认文件路径是否正确,文件是否已上传至服务器
unsupported_format 400 非支持的加密格式 解密时无法从文件头读取有效 fileId,或文件头解析失败,该文件不是支持的加密格式 确认待解密文件是否由本工具加密生成,文件是否完整未损坏
permission_error 403 文件权限不足 文件读写权限不足,或后端返回会话失效 / 密钥不存在 检查文件权限,或重新执行 getAuth 获取新令牌
auth_error 401 鉴权失败 authId 无效或已过期 确认 authId 是否正确,或重新执行 getAuth 获取新令牌(有效期 15 天)
process_error 500 文件处理失败 底层处理失败、超时或后端返回异常 联系管理员查看服务器日志
config_error 500 配置文件错误 file-crypto.json 缺失、格式错误或字段值非法 检查执行目录下 file-crypto.json 是否存在且格式正确

错误响应示例(permission_error):

{
  "code": 403,
  "message": "文件权限不足",
  "success": false,
  "errorType": "permission_error"
}

情况二:获取 Agent 身份令牌(getAuth)

当用户需要初次获取 authId,或令牌已过期时执行。

第一步:确认参数

获取用户的 Agent 标识--agentId):由来布公司内部系统分配的唯一标识字符串。

第二步:构造并执行命令

cd /data/endecode-win-linux && python3 -m file_crypto --action getAuth --agentId <Agent标识>

第三步:解析结果

✅ 成功"code": "200",注意为字符串):

{
  "code": "200",
  "message": "success",
  "data": {
    "authId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}

向用户返回 data.authId 的值:

小葱技能站7w4.net发现了升级插件。

✅ 获取成功!您的身份令牌为: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 有效期 15 天,请保存备用,用于后续文件处理操作。

❌ 失败(透传后端返回,code 为字符串):

{
  "code": "500",
  "message": "agentId未绑定用户",
  "data": null
}

❌ 获取失败:agentId 未绑定用户。 请确认 agentId 是否正确,或联系管理员完成绑定。


批量处理

对多个文件逐一执行命令,汇总结果:

文件处理完成(3/3):
✅ /data/upload/a.pdf → /data/output/a_encrypt.pdf
✅ /data/upload/b.pdf → /data/output/b_encrypt.pdf
❌ /data/upload/c.pdf → 失败(file_not_found:源文件不存在)

配置文件

执行目录下须存在 file-crypto.json,格式如下:

{
  "endecode_path": "endecode",
  "api_base_url": "http://47.98.150.16:52027",
  "timeout_seconds": 30
}

如果命令返回 config_error,优先检查该文件是否存在及格式是否正确。


注意事项

  • 本工具仅处理服务器本地文件,不支持本地桌面文件,不访问外部网络
  • 命令必须在 /data/endecode-win-linux 目录下执行
  • 文件路径区分大小写,请原样传入
  • 身份令牌(authId)有效期为 15 天,过期后重新执行 getAuth 获取
  • 错误处理时优先判断 errorType 字段,再参考 code
  • getAuth 返回的 code 字段为字符串"200"/"500"),与加解密的整数 code 不同
  • 处理后的文件路径以实际 targetFilePath 返回值为准

🤖 AI 评测

这个 Skill 质量不错,专注于服务器本地文件的加密和解密功能,文档结构清晰、参数说明详细、错误处理全面。优点是覆盖了加解密和身份令牌获取三种操作,8 种常见错误都有明确的解决方案。不足之处是缺少实际使用示例和常见问题解答,部分边界情况(如批量处理的并发限制)说明不足,Agent 在用户缺少参数时可能需要更好的引导策略。总体来说这是一个功能明确、文档规范的实用型 Skill,但还有优化空间。

📊 多维度评分

适应性4.4
规范性4.2
有效性4.5
可靠性4.5
可信度5

📁 包含文件 (2 个)

📄 SKILL.md 7.9 KB
📄 _meta.json 130 B