mcpField
C
credentials

credentials

github.com/aibtcdev安全11175 次安装1 天前更新
代码仓库

关于 credentials

用于管理 API 密钥、令牌、密码和 URL 等命名凭据的命令行工具。它会加密静态存储的值,并将主密码与钱包系统分开管理。

主要功能

  1. 01使用 AES-256-GCM 加密密钥
  2. 02保存每项凭据的元数据
  3. 03读取并列出凭据
  4. 04经确认后删除凭据
  5. 05轮换密码并重新加密条目

适用场景

  1. 01为本地脚本保存 API 密钥
  2. 02运行命令时读取机密值
  3. 03更改已存凭据的主密码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aibtcdev/skills --skill credentials

安装后在 Claude Code 中输入/credentials确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENT.md
credentials.ts
store.ts
types.ts

详细介绍

凭据技能

管理任意命名的密钥——API 密钥、令牌、密码、URL——使用 AES-256-GCM 加密并静态存储,每个凭据通过 PBKDF2 派生密钥。值以加密数据块的形式存储在 ~/.aibtc/credentials.json 中;仅标识符、标签、类别和时间戳以明文存储。无需钱包——凭据存储使用独立于钱包系统的主密码。

用法

bun run credentials/credentials.ts <subcommand> [options]

子命令

add

添加新凭据或更新现有凭据。值使用 AES-256-GCM 加密,密钥通过 PBKDF2 从主密码派生(100,000 次迭代,每个凭据使用独立盐值)。

bun run credentials/credentials.ts add --id <id> --value <value> --password <pass> [--label <text>] [--category <cat>]

选项:

  • --id(必填)— 规范化的凭据标识符(例如 hiro-api-key、openrouter-token)
  • --value(必填)— 明文密钥值(敏感信息——不会被存储)
  • --password(必填)— 用于加密的主密码(敏感信息)
  • --label(可选)— 易读标签(默认与 id 相同)
  • --category(可选)— 类别标签,例如 api-key、token、url 或 secret(默认:secret)

输出:

{
  "success": true,
  "id": "hiro-api-key",
  "label": "Hiro API Key",
  "category": "api-key",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z"
}
get

解密并返回凭据值。输出中会显示明文值——请谨慎处理。

bun run credentials/credentials.ts get --id <id> --password <pass>

选项:

  • --id(必填)— 凭据标识符
  • --password(必填)— 用于解密的主密码(敏感信息)

输出:

{
  "id": "hiro-api-key",
  "label": "Hiro API Key",
  "category": "api-key",
  "value": "hiro_api_key_xxxxxxxxxxxxxxxx",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z"
}

提示:在脚本中使用 $(bun run credentials/credentials.ts get --id hiro-api-key --password $CRED_PASS | jq -r .value) 提取值。

list

列出所有凭据标识符和元数据。不会执行解密,也不会返回密钥值。

bun run credentials/credentials.ts list

输出:

{
  "count": 2,
  "credentials": [
    {
      "id": "hiro-api-key",
      "label": "Hiro API Key",
      "category": "api-key",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  ]
}
delete

永久删除凭据。需要提供主密码(用于验证所有权)和明确的确认字符串。

bun run credentials/credentials.ts delete --id <id> --password <pass> --confirm DELETE

选项:

  • --id(必填)— 要删除的凭据标识符
  • --password(必填)— 用于验证的主密码(敏感信息)
  • --confirm(必填)— 必须与 DELETE 完全一致

输出:

{
  "success": true,
  "deleted": "hiro-api-key",
  "message": "Credential \"hiro-api-key\" has been permanently deleted."
}
rotate-password

通过原子性地重新加密所有凭据来更改主密码。使用旧密码解密每个凭据,再使用新密码重新加密。如果任何凭据解密失败,则会在写入任何更改前中止操作。

bun run credentials/credentials.ts rotate-password --old-password <pass> --new-password <pass>

选项:

  • --old-password(必填)— 当前主密码(敏感信息)
  • --new-password(必填,至少 8 个字符)— 新主密码(敏感信息)

输出:

{
  "success": true,
  "message": "Password rotated. 3 credentials re-encrypted.",
  "count": 3
}

安全说明

  • 每个凭据都使用独立的盐值和 IV 进行 AES-256-GCM 加密——一个凭据泄露不会削弱其他凭据的安全性
  • PBKDF2-SHA256 使用 100,000 次迭代,使暴力破解代价高昂
  • 主密码绝不会写入磁盘——请通过 --password 标志或环境变量替换传入
  • ~/.aibtc/credentials.json 的写入权限为 0o600(仅所有者可读写)
  • 凭据存储独立于钱包系统——建议使用单独的主密码
  • delete 和 rotate-password 会先通过解密验证密码,再修改凭据存储

评论

支持 Markdown