搜索

PythonReactSEOPDF
OpenClaw

env-secure-manager

Secure environment variable & secret management with AES-256 encryption, auto-redaction, permission control, prevent credential leakage

ayalili0 来源安装数☆ 0 仓库 Stars

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

SkillHub CLI

skillhub install ayalili/env-secure-manager

打开来源仓库,查看说明和兼容环境后,按来源提供的命令或步骤安装。

将来源链接提供给你的 Agent,让它先读取说明、核对依赖,并向你说明将执行的安装步骤。

查看来源 ↗使用指南

技能说明

🔐 环境变量安全管理器

核心亮点

  1. 🛡️ AES-256加密存储:敏感信息自动加密,即使配置文件泄露也无法获取明文密钥
  2. 🚫 自动脱敏机制:自动检测并脱敏输出中的敏感信息,防止密钥泄露到日志/聊天记录
  3. 🔑 权限控制:访问敏感值需要显式授权,避免意外泄露
  4. 🔄 自动密钥生成:首次使用自动生成安全密钥,也支持自定义密钥

🎯 适用场景

  • 管理API密钥、数据库密码等敏感信息
  • 防止敏感信息泄露到日志、输出或会话历史
  • 批量加载环境变量,统一管理配置
  • 多Agent环境下的安全配置共享

📝 参数说明

参数 类型 必填 说明
action string 是 操作类型:init/set/get/list/delete/redact/loadFromEnv
key string 否 set/get/delete操作必填,环境变量名,大写字母+下划线
value string 否 set操作必填,变量值
isSecret boolean 否 set操作可选,是否为敏感信息,默认false
allowSecret boolean 否 get操作可选,是否允许获取敏感值,默认false
text string 否 redact操作必填,要脱敏的文本
prefix string 否 loadFromEnv操作可选,环境变量前缀,默认OPENCLAW_
encryptionKey string 否 init操作可选,自定义32位加密密钥

💡 开箱即用示例

初始化(可选,建议启动时调用)
// 使用自定义密钥
await skills.envSecureManager({
  action: "init",
  encryptionKey: "你的32位安全密钥"
});

// 自动生成密钥
await skills.envSecureManager({ action: "init" });
存储敏感密钥
await skills.envSecureManager({
  action: "set",
  key: "OPENAI_API_KEY",
  value: "sk-xxx",
  isSecret: true
});
安全获取密钥
const result = await skills.envSecureManager({
  action: "get",
  key: "OPENAI_API_KEY",
  allowSecret: true // 必须显式授权才能获取敏感值
});
输出自动脱敏
// 即使日志里不小心打印了密钥,也会自动脱敏
const logText = `调用OpenAI API,密钥是sk-xxx,参数是xxx`;
const redacted = await skills.envSecureManager({
  action: "redact",
  text: logText
});
// 输出:调用OpenAI API,密钥是***REDACTED***,参数是xxx

🔧 技术实现说明

  • 使用AES-GCM 25...

来源信息

Source
github
Repository
openclaw/skills
Path
skills/ayalili/env-secure-manager
Version
—
Commit
096016eb08986cb320df1ad6d8d3fcd7c6f014f8
分类来源
rules
状态
active
可见性
public

这些信息来自收录时的来源分析,可能滞后;使用前请核对最新来源文件。

README

🔐 环境变量安全管理器

核心亮点

  1. 🛡️ AES-256加密存储:敏感信息自动加密,即使配置文件泄露也无法获取明文密钥
  2. 🚫 自动脱敏机制:自动检测并脱敏输出中的敏感信息,防止密钥泄露到日志/聊天记录
  3. 🔑 权限控制:访问敏感值需要显式授权,避免意外泄露
  4. 🔄 自动密钥生成:首次使用自动生成安全密钥,也支持自定义密钥

🎯 适用场景

  • 管理API密钥、数据库密码等敏感信息
  • 防止敏感信息泄露到日志、输出或会话历史
  • 批量加载环境变量,统一管理配置
  • 多Agent环境下的安全配置共享

📝 参数说明

参数 类型 必填 说明
action string 是 操作类型:init/set/get/list/delete/redact/loadFromEnv
key string 否 set/get/delete操作必填,环境变量名,大写字母+下划线
value string 否 set操作必填,变量值
isSecret boolean 否 set操作可选,是否为敏感信息,默认false
allowSecret boolean 否 get操作可选,是否允许获取敏感值,默认false
text string 否 redact操作必填,要脱敏的文本
prefix string 否 loadFromEnv操作可选,环境变量前缀,默认OPENCLAW_
encryptionKey string 否 init操作可选,自定义32位加密密钥

💡 开箱即用示例

初始化(可选,建议启动时调用)
// 使用自定义密钥
await skills.envSecureManager({
  action: "init",
  encryptionKey: "你的32位安全密钥"
});

// 自动生成密钥
await skills.envSecureManager({ action: "init" });
存储敏感密钥
await skills.envSecureManager({
  action: "set",
  key: "OPENAI_API_KEY",
  value: "sk-xxx",
  isSecret: true
});
安全获取密钥
const result = await skills.envSecureManager({
  action: "get",
  key: "OPENAI_API_KEY",
  allowSecret: true // 必须显式授权才能获取敏感值
});
输出自动脱敏
// 即使日志里不小心打印了密钥,也会自动脱敏
const logText = `调用OpenAI API,密钥是sk-xxx,参数是xxx`;
const redacted = await skills.envSecureManager({
  action: "redact",
  text: logText
});
// 输出:调用OpenAI API,密钥是***REDACTED***,参数是xxx

🔧 技术实现说明

  • 使用AES-GCM 25...

来源内容

SKILL.md
# 🔐 环境变量安全管理器
## 核心亮点
1. 🛡️ **AES-256加密存储**:敏感信息自动加密,即使配置文件泄露也无法获取明文密钥
2. 🚫 **自动脱敏机制**:自动检测并脱敏输出中的敏感信息,防止密钥泄露到日志/聊天记录
3. 🔑 **权限控制**:访问敏感值需要显式授权,避免意外泄露
4. 🔄 **自动密钥生成**:首次使用自动生成安全密钥,也支持自定义密钥

## 🎯 适用场景
- 管理API密钥、数据库密码等敏感信息
- 防止敏感信息泄露到日志、输出或会话历史
- 批量加载环境变量,统一管理配置
- 多Agent环境下的安全配置共享

## 📝 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| action | string | 是 | 操作类型:init/set/get/list/delete/redact/loadFromEnv |
| key | string | 否 | set/get/delete操作必填,环境变量名,大写字母+下划线 |
| value | string | 否 | set操作必填,变量值 |
| isSecret | boolean | 否 | set操作可选,是否为敏感信息,默认false |
| allowSecret | boolean | 否 | get操作可选,是否允许获取敏感值,默认false |
| text | string | 否 | redact操作必填,要脱敏的文本 |
| prefix | string | 否 | loadFromEnv操作可选,环境变量前缀,默认OPENCLAW_ |
| encryptionKey | string | 否 | init操作可选,自定义32位加密密钥 |

## 💡 开箱即用示例
### 初始化(可选,建议启动时调用)
```typescript
// 使用自定义密钥
await skills.envSecureManager({
  action: "init",
  encryptionKey: "你的32位安全密钥"
});

// 自动生成密钥
await skills.envSecureManager({ action: "init" });
```

### 存储敏感密钥
```typescript
await skills.envSecureManager({
  action: "set",
  key: "OPENAI_API_KEY",
  value: "sk-xxx",
  isSecret: true
});
```

### 安全获取密钥
```typescript
const result = await skills.envSecureManager({
  action: "get",
  key: "OPENAI_API_KEY",
  allowSecret: true // 必须显式授权才能获取敏感值
});
```

### 输出自动脱敏
```typescript
// 即使日志里不小心打印了密钥,也会自动脱敏
const logText = `调用OpenAI API,密钥是sk-xxx,参数是xxx`;
const redacted = await skills.envSecureManager({
  action: "redact",
  text: logText
});
// 输出:调用OpenAI API,密钥是***REDACTED***,参数是xxx
```

## 🔧 技术实现说明
- 使用AES-GCM 25...
README
# 🔐 环境变量安全管理器
## 核心亮点
1. 🛡️ **AES-256加密存储**:敏感信息自动加密,即使配置文件泄露也无法获取明文密钥
2. 🚫 **自动脱敏机制**:自动检测并脱敏输出中的敏感信息,防止密钥泄露到日志/聊天记录
3. 🔑 **权限控制**:访问敏感值需要显式授权,避免意外泄露
4. 🔄 **自动密钥生成**:首次使用自动生成安全密钥,也支持自定义密钥

## 🎯 适用场景
- 管理API密钥、数据库密码等敏感信息
- 防止敏感信息泄露到日志、输出或会话历史
- 批量加载环境变量,统一管理配置
- 多Agent环境下的安全配置共享

## 📝 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| action | string | 是 | 操作类型:init/set/get/list/delete/redact/loadFromEnv |
| key | string | 否 | set/get/delete操作必填,环境变量名,大写字母+下划线 |
| value | string | 否 | set操作必填,变量值 |
| isSecret | boolean | 否 | set操作可选,是否为敏感信息,默认false |
| allowSecret | boolean | 否 | get操作可选,是否允许获取敏感值,默认false |
| text | string | 否 | redact操作必填,要脱敏的文本 |
| prefix | string | 否 | loadFromEnv操作可选,环境变量前缀,默认OPENCLAW_ |
| encryptionKey | string | 否 | init操作可选,自定义32位加密密钥 |

## 💡 开箱即用示例
### 初始化(可选,建议启动时调用)
```typescript
// 使用自定义密钥
await skills.envSecureManager({
  action: "init",
  encryptionKey: "你的32位安全密钥"
});

// 自动生成密钥
await skills.envSecureManager({ action: "init" });
```

### 存储敏感密钥
```typescript
await skills.envSecureManager({
  action: "set",
  key: "OPENAI_API_KEY",
  value: "sk-xxx",
  isSecret: true
});
```

### 安全获取密钥
```typescript
const result = await skills.envSecureManager({
  action: "get",
  key: "OPENAI_API_KEY",
  allowSecret: true // 必须显式授权才能获取敏感值
});
```

### 输出自动脱敏
```typescript
// 即使日志里不小心打印了密钥,也会自动脱敏
const logText = `调用OpenAI API,密钥是sk-xxx,参数是xxx`;
const redacted = await skills.envSecureManager({
  action: "redact",
  text: logText
});
// 输出:调用OpenAI API,密钥是***REDACTED***,参数是xxx
```

## 🔧 技术实现说明
- 使用AES-GCM 25...

相关技能

OpenClaw

1password

daggerkun007

Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.