kveil
v0.3.0
Published
防 AI 密钥窃取工具 - 将密钥加密存储在二进制文件中
Maintainers
Readme
kveil
防 AI 密钥窃取工具 - 将密钥加密存储在二进制文件中,防止 AI 爬虫读取代码库时窃取敏感信息。
⚠️ 迁移指南 (v0.2.0 -> v0.3.0)
BREAKING CHANGE: 默认配置目录已从 .kveil 重命名为 .kvbin。
请手动重命名项目中的目录:
mv .kveil .kvbin核心原理
- bin 文件存储:密钥加密后存储在二进制文件中,AI 爬虫通常不会读取二进制文件
- AES-256-GCM 加密:使用强加密算法保护密钥
- XOR 编码主密钥:主密钥经过 XOR 编码后存储在 bin 文件头部
快速开始
1. 初始化项目
kveil init生成:
.kvbin/secrets.bin- 加密的密钥存储文件.kvbin/config.yaml- 密钥声明配置
2. 添加密钥
kveil add mi_api_key "sk-1234567890abcdef"3. 查看密钥
# 查看所有密钥的明文和密文
kveil show -l
# 查看指定密钥的明文
kveil show mi_api_key4. 检查完整性
kveil check
kveil list密钥管理
删除密钥
kveil remove mi_api_key从 secrets.bin 和 config.yaml 中删除指定密钥。
重置单个密钥值
kveil reset mi_api_key "new-sk-0987654321fedcba"更新指定密钥的值(使用相同的主密钥重新加密)。
更换主密钥
# 自动生成新主密钥
kveil rekey
# 指定新主密钥(必须 16 位)
kveil rekey --key "ABCDEFGHIJ123456"使用场景:
- 主密钥可能泄露时
- 定期轮换密钥以提高安全性
- 团队成员变更后的安全加固
注意事项:
- 旧主密钥将失效
- 所有使用旧主密钥的运行时库需要同步更新
- 新主密钥需要安全分发给团队成员
运行时库集成
Flutter
pubspec.yaml
dependencies:
kveil:
path: path/to/kveil/packages/flutter代码使用
import 'package:kveil/kveil.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Kveil.init();
final apiKey = Kveil.get('mi_api_key');
runApp(MyApp());
}Web/React
安装
npm install kveil-web配置 - 复制 bin 文件到 public 目录:
cp .kvbin/secrets.bin public/.kvbin/secrets.bin代码使用
import { Kveil } from 'kveil-web';
await Kveil.init('/.kvbin/secrets.bin');
const apiKey = Kveil.get('mi_api_key');安全说明
防护的场景
✅ AI 爬虫(不解析二进制文件) ✅ 代码审查(看不到明文密钥)
不防护的场景
❌ 专业逆向工程 ❌ 运行时攻击 ❌ 黑客攻击
完整文档
https://github.com/yourusername/kveil
许可证
MIT
