Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

环境与凭据管理器(Credential & Env Manager)

Windows 本地图形界面工具,统一管理散落的 API 凭据(tokens/keys)与开发环境变量(JAVA_HOME/Path 等)。 纯本地运行,无任何网络上传;任何界面/日志/导出均不显示完整凭据值(仅前缀 6 位 + 长度)。

快速开始

打包版(推荐)

  1. 运行 dist\credmgr\credmgr.exe
  2. 首次启动:设置主密码 → 创建保险库(可选"记住本机",主密码存入 Windows 凭据管理器,DPAPI 保护)
  3. 解锁后进入主界面:
    • 🔑 凭据页:点"重新扫描"导入机器上发现的全部凭据(加密存储)
    • 🖥 环境变量页:查看/编辑用户级与系统级变量,可视化编辑 Path,切换 JDK 版本
    • 💾 备份/恢复 / 📋 变更审计 / 🩺 安全体检 / 🔗 占位符

源码运行(开发)

# Python 3.12 环境
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python main.py          # 启动 GUI
.venv\Scripts\python main.py --scan   # 只读盘点(CLI,脱敏输出)

安全设计(最高优先级)

实现
存储加密 主密码 → Argon2id(64MB, 3iter) → AES-256-GCM 逐条加密凭据(SQLite,仅存密文+前缀+长度)
记住本机 主密码经 DPAPI(Windows 凭据管理器)保存,可选启用
脱敏铁律 全项目统一 mask():任何输出只显示 前缀6位…(长度)
写前备份 修改任何现有配置文件前自动备份(~/.credmgr/backups/)
审计日志 记录时间/位置/动作/前后值摘要(脱敏),可导出 CSV
备份加密 可导出口令加密的备份包(enczip1 格式)
剪贴板 查看完整值仅临时弹窗,5 秒自动隐藏

环境变量页能力

  • 双层级:用户级(HKCU)与系统级(HKLM)分开编辑;系统级修改需管理员,非管理员自动触发 UAC 提权;关键系统变量只读保护
  • Path 可视化编辑器:逐条列表(增/删/排序/勾选启用禁用),失效路径标红
  • 多版本切换(通用引擎):可配置工具清单(app/core/tool_registry.py,支持用户覆盖 ~/.credmgr/tool_registry.json),三种机制:
    • home 型(Java/Maven/Go/Gradle/Node):扫描目录 → 改写 *_HOME 变量,Path %VAR%\bin 自动跟随
    • path 型(Python):把目标版本 bin 移到 Path 最前
    • special 型(Rust/rustup、.NET SDK):调用工具自身版本管理器
    • 实测支持:Java 8u481/21.0.11、Python 3.14/3.12 多版本切换;Maven/Go/Node/.NET/Rust 自动检测当前版本
  • 引用链:%JAVA_HOME%\bin 等 %VAR% 引用保留(REG_EXPAND_SZ),修改父变量自动影响子条目
  • 生效提示:每次修改提示"新终端生效,当前窗口不受影响"(通过 WM_SETTINGCHANGE 广播)

凭据页能力

  • 仪表盘:总数/分类/状态统计
  • 表格:名称、类型、来源(可多处)、长度、前缀、状态;值默认隐藏,点眼睛临时显示 5 秒
  • 同步更新:一条凭据(如 GitHub token)一次更新到所有关联位置(环境变量、.claude.json、ZCode 配置、opencode 配置、插件配置等),执行前自动备份 + 预览确认
  • 轮换引导:吊销重建后录入新值,一键同步到所有位置
  • 占位符规范化:列出各配置中的 {env:X} / ${X} / {file:...} 语法与兼容性提示
  • 搜索:跨名称/来源/前缀

安全体检(只提示,不自动修复)

检测:明文 token 泄露、重复 key、空占位符、孤立凭据(环境变量无配置引用)、GITHUB_TOKEN 双变量不一致、失效 Path 条目、失效变量指向、npm 镜像等。 体检报告全程脱敏。所有修复动作需你在界面上手动确认(先备份 → 预览 → 执行)。

数据位置

内容 路径
加密保险库 ~\.credmgr\vault.db
主密码元数据(盐/校验码) ~\.credmgr\settings.json
审计日志 ~\.credmgr\audit.jsonl
备份包 ~\.credmgr\backups\backup-<时间戳>\

主密码丢失将无法恢复凭据(加密无法绕过)。建议:备份保险库 + 加密导出备份包并存。

打包说明

.venv\Scripts\pip install pyinstaller
.venv\Scripts\pyinstaller build\credmgr.spec --noconfirm --distpath dist --workpath build\work
# 产物: dist\credmgr\credmgr.exe(onedir 模式,规避 onefile+UAC 安全隐患)

技术栈

Python 3.12 · PySide6 (Qt) · winreg(注册表)· ctypes(UAC/WM_SETTINGCHANGE)· cryptography(Argon2id/AES-GCM)· keyring(DPAPI)· SQLite · PyInstaller

已知限制

  • 系统级变量修改在非管理员启动时需 UAC 提权(会弹窗)
  • .zcode\v2\credentials.json 为 ZCode 内部 enc:v1 加密格式,工具仅展示键名与格式,不解析其值(无法也不应绕过)
  • 打包 exe 首次启动可能被杀软误报(未签名),建议添加信任或源码运行
  • 多版本切换:未安装的工具不显示;special 型(.NET)仅检测不切换;新增语言可编辑 tool_registry.py~/.credmgr/tool_registry.json 扩展

About

Windows 本地环境与凭据管理器(Python + PySide6 GUI):API 凭据加密管理(Argon2id + AES-256-GCM)+ 环境变量可视化编辑(Path 编辑器/多版本切换/UAC 提权)。纯本地运行,全程脱敏。MIT 风格开源示例。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages