Zayan-Mohamed/vaultix
GitHub: Zayan-Mohamed/vaultix
一个使用 AES-256-GCM 与 Argon2id 的跨平台本地加密工具,专为保护离线敏感文件而设计。
Stars: 0 | Forks: 0
# vaultix
` | 添加文件到保险库 | `vaultix add secret.txt` |
| `list [path]` | 列出加密文件 | `vaultix list` |
| `extract [file]` | 提取文件(保留在保险库) | `vaultix extract` |
| `drop ` | 提取并从保险库移除 | `vaultix drop secret` |
| `remove ` | 从保险库移除文件(不提取) | `vaultix remove old.txt` |
| `clear [path]` | 从保险库移除所有文件 | `vaultix clear` |
| `recover [file]` | 使用恢复密钥解锁保险库 | `vaultix recover` |
### 高级用法
```
# 模糊文件匹配(不区分大小写)
vaultix extract SECRET # Matches "secret_document.pdf"
vaultix extract api # Matches "api_keys.json"
# 提取到指定目录
vaultix extract . /tmp/decrypted/
# 使用特定 vault 路径
vaultix list ~/other_vault
vaultix extract document ~/other_vault
```
## 🏗️ 工作原理
当你在路径(例如 `./my_secrets`)初始化保险库时,vaultix 会在其内部创建一个隐藏的 `.vaultix/` 目录:
```
my_secrets/
└── .vaultix/
├── meta # Encrypted metadata (filenames, sizes, timestamps)
├── salt # Random salt for password-based key derivation
├── master.key # Master key encrypted with password-derived key
├── recovery.key # Master key encrypted with recovery key
└── objects/
├── 3f9a2c1d.enc # Encrypted file data
└── 91bd77aa.enc # Encrypted file data
```
### 安全细节
1. **主密钥加密**:随机 256 位主密钥加密所有保险库数据
2. **双重解锁方式**:主密钥可通过密码或恢复密钥解密
3. **不存储明文密钥**:主密钥永不以明文形式存储在磁盘
4. **不存储密码**:密码仅在操作期间存在于内存中
5. **加密元数据**:即使文件名也会被主密钥加密
6. **混淆对象名**:加密文件拥有随机 ID
7. **每个保险库独立 Salt**:每个保险库使用独立的随机 Salt
8. **认证机制**:AES-GCM 提供加密与完整性验证
### 认证与解锁
密码/恢复密钥的正确性通过成功解密主密钥来验证。不存储密码哈希。这意味着:
- 错误密码/恢复密钥 = 解密失败
- 无法在不尝试解密的情况下测试凭证
- 恢复密钥在密码遗忘时提供备用访问
- 若同时丢失密码和恢复密钥,数据将永久丢失
## 💡 最佳实践
### 密码与恢复密钥管理
**密码选择** - 使用强且唯一的密码:
- ✅ 至少 16 个字符
- ✅ 包含字母、数字和符号
- ✅ 不在其他地方使用
- ✅ 不可轻易猜测
建议使用密码管理器生成并存储保险库密码。
**恢复密钥存储** - 恢复密钥在保险库初始化时仅显示一次:
- ✅ 打印并保存在安全位置
- ✅ 保存为密码管理器中的安全笔记
- ✅ 存储在保险库之外的独立安全位置
- ⚠️ 切勿将恢复密钥存储在保险库内
- ⚠️ 若同时丢失密码和恢复密钥,数据将永久丢失
### 备份策略
- 必须备份整个保险库目录(包括 `.vaultix/`)
- 通过备份副本提取文件以测试备份
- 加密保险库可安全备份到云存储
- ⚠️ 丢失 `.vaultix/` = 永久数据丢失
### 文件管理
- 使用 `add` 添加文件时,原始文件**不会**自动删除
- 如需删除原始文件,请使用安全删除工具
- 保持临时提取内容不在保险库目录内
- 不要将敏感文件提取到公共或共享目录
### 操作安全
- 不要在可能被记录的地方输入密码
- 不要在未加密的远程连接中使用 vaultix
- 完成保险库操作后关闭终端
- 考虑结合使用全磁盘加密
- 注意交换文件和休眠转储文件
## 🌐 平台支持
vaultix 在 **Linux**、**macOS** 和 **Windows** 上表现一致。
## 📖 文档
完整文档地址:**[https://zayan-mohamed.github.io/vault](https://zayan-mohamed.github.io/vaultix)**
- 📘 [安装指南](https://zayan-mohamed.github.io/vaultix/installation/)
- 🚀 [快速开始](https://zayan-mohamed.github.io/vaultix/quickstart/)
- 📚 [命令参考](https://zayan-mohamed.github.io/vaultix/commands/)
- 💡 [示例](https://zayan-mohamed.github.io/vaultix/examples/)
- 🔐 [安全模型](https://zayan-mohamed.github.io/vaultix/security/)
- 🏗️ [架构](https://zayan-mohamed.github.io/vaultix/architecture/)
## 🔧 开发
### 从源码构建
```
# 克隆仓库
git clone https://github.com/Zayan-Mohamed/vaultix.git
cd vaultix
# 构建
go build -o vaultix
# 运行测试
go test ./...
# 运行代码检查
go vet ./...
```
### 项目架构
```
vaultix/
├── internal/
│ ├── crypto/ # Cryptographic operations (Argon2id, AES-GCM)
│ ├── storage/ # File system operations
│ ├── vault/ # Business logic layer
│ └── cli/ # Command-line interface
├── docs/ # MkDocs documentation
└── main.go # Entry point
```
## 📄 许可证
MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。
## ⚠️ 免责声明
本软件按原样提供,不附带任何担保。尽管 vaultix 使用了经过验证的加密库并遵循安全最佳实践,但尚未经过正式安全审计。请自行承担使用风险。
**注意**:保险库的安全性完全取决于密码强度和操作安全实践。
用于管理密码保护加密文件夹的跨平台命令行工具
功能 • 安装 • 快速开始 • 文档 • 安全性 • 贡献
## 📖 概述 vaultix 是一个安全、轻量的命令行工具,使用军用级加密技术就地加密文件。不依赖云端、服务或复杂架构——只为你的敏感文件提供强大的加密保护。 ### 主要亮点 - 🔒 **强加密**:使用 Argon2id 密钥派生的 AES-256-GCM - 🚀 **零依赖**:单一静态二进制文件,无需运行时依赖 - 💻 **跨平台**:支持 Linux、macOS 和 Windows - 🎯 **简洁体验**:智能默认值的直观命令 - 🔐 **不存储密码**:密码仅在内存中存在 - 📦 **可移植**:加密保险库可在所有平台使用 ## ✨ 功能 ✅ **自动加密** - 初始化保险库后,所有文件会立即加密 ✅ **主密钥加密** - 随机 256 位主密钥保护所有保险库数据 ✅ **恢复密钥支持** - 忘记密码时可用恢复密钥解锁 ✅ **双重解锁方式** - 使用密码或恢复密钥解锁 ✅ **模糊文件匹配** - 无需输入精确文件名 ✅ **默认当前目录** - 减少输入,专注于操作 ✅ **提取或移除** - 可提取文件并保留在保险库,或移出保险库 ✅ **安全删除** - 原始文件在删除前会被覆写 ✅ **隐藏元数据** - 即使是文件名也会被加密 ✅ **无后台进程** - 仅在调用时运行 ## 安全模型 ### 密码学 vaultix 使用 **主密钥加密模型**,采用行业标准的加密原语: - **主密钥**:每个保险库生成的随机 256 位密钥(加密后永不以明文存储) - **密码保护**:主密钥使用 Argon2id 派生的密钥加密(64MB 内存,1 次迭代,4 个线程) - **恢复密钥**:可解密主密钥的随机 256 位密钥(备用解锁方式) - **数据加密**:所有保险库数据使用 AES-256-GCM 认证加密 - **随机性**:使用 Go 的 `crypto/rand` 包生成所有加密随机数 ### 威胁模型 vaultix 防护: - 存储介质上的未授权访问(假设密码足够强) - 文件内容的意外暴露 - 对加密数据的随意检查 vaultix **不防护**: - 弱密码(请使用强且唯一的密码) - 系统上的恶意软件或键盘记录器 - 电脑物理访问时处于解锁状态 - 底层操作系统攻击 - 侧信道攻击或内存分析 - 胁迫或法律强制 ### 重要限制 - **双重认证必需**:请同时妥善保管密码和恢复密钥 - **无密码重置**:若同时丢失密码和恢复密钥,数据将永久丢失 - **恢复密钥关键**:请安全存储(如打印、保存到密码管理器) - **无自动备份**:请自行负责备份保险库 - **单用户设计**:不支持多用户或共享 - **仅文件**:无法加密目录(需单独添加文件) ## 📦 安装 ### 下载预编译二进制文件(推荐) 下载适用于你平台的最新发行版: **Linux:** ``` curl -LO https://github.com/Zayan-Mohamed/vaultix/releases/latest/download/vaultix-linux-amd64 chmod +x vaultix-linux-amd64 sudo mv vaultix-linux-amd64 /usr/local/bin/vaultix ``` **macOS:** ``` curl -LO https://github.com/Zayan-Mohamed/vaultix/releases/latest/download/vaultix-darwin-amd64 chmod +x vaultix-darwin-amd64 sudo mv vaultix-darwin-amd64 /usr/local/bin/vaultix ``` **Windows(PowerShell 以管理员身份运行):** ``` Invoke-WebRequest -Uri "https://github.com/Zayan-Mohamed/vaultix/releases/latest/download/vaultix-windows-amd64.exe" -OutFile "vaultix.exe" Move-Item vaultix.exe C:\Windows\System32\ ``` ### 从源码构建 需要 Go 1.21 或更高版本: ``` git clone https://github.com/Zayan-Mohamed/vaultix.git cd vaultix go build -o vaultix ``` 然后将二进制文件移动到你的 PATH: **Linux/macOS:** ``` sudo mv vaultix /usr/local/bin/ ``` **Windows:** ``` Move-Item vaultix.exe C:\Windows\System32\ ``` ## 🚀 快速开始 ``` cd ~/my_secrets # 初始化 vault(自动加密所有文件) vaultix init # 输入密码:**** # 确认密码:**** # ✓ Vault 已初始化 # ✓ 所有文件已加密 # ✓ 原始文件已安全删除 # # ⚠️ 重要:恢复密钥 # 您的恢复密钥:5025f74e-c5d7a54a-7b99c87b-78cca1a0-... # 请将恢复密钥保存在安全位置! # 如果忘记密码,它可用于解锁您的 vault。 # 列出加密文件 vaultix list # vault 中的文件(3 个): # passwords.txt # api_keys.json # private_key.pem # 提取文件(保留在 vault 中) vaultix extract passwords # ✓ 文件已提取:passwords.txt # 丢弃文件(提取并从 vault 中移除) vaultix drop api_keys # ✓ 已丢弃:api_keys.json(已提取并从 vault 中移除) # 提取所有文件 vaultix extract # ✓ 已提取 3 个文件 ``` ## 📚 用法 ### 命令 | 命令 | 描述 | 示例 | | --- | --- | --- | | `init [path]` | 初始化保险库并加密所有文件 | `vaultix init` | | `add






用心为注重安全的开发者打造
⭐ 如果你觉得它有用,请为这个项目点星!
标签:AES-256-GCM, Argon2id, CLI, EVTX分析, Go语言, HTTP 参数枚举, ProjectDiscovery, WiFi技术, 二进制发布, 便携加密, 内存密码, 加密工具, 单二进制文件, 大语言模型安全, 安全存储, 安全通信, 密钥安全, 密钥派生, 开源工具, 操作系统检测, 数据保护, 文件加密, 文件夹加密, 文件系统加密, 无密码存储, 日志审计, 机密管理, 磁盘加密, 离线加密, 程序破解, 端点保护, 零依赖, 静态编译