dulanjayabhanu/miragex
GitHub: dulanjayabhanu/miragex
MirageX 是一款完全离线的命令行文件加密工具,使用 AES-256-GCM 和 Argon2id 保护本地敏感数据免受未授权访问。
Stars: 4 | Forks: 0
# MirageX
一款安全、离线、基于控制台的文件加密工具,使用 Java 21 和 Picocli 构建。
MirageX 旨在保护存储在您本地机器上的敏感纯文本文件,
例如账户凭据、API keys、个人笔记以及任何您希望
保密的数据。
## 为什么选择 MirageX 大多数人将敏感信息以纯文本形式存储在他们的机器上。这些文件 容易受到未经授权的访问、意外泄露,或者被第三方 工具(如 AI 编程代理、同步服务或备份软件)读取。 MirageX 通过使用行业标准加密算法对这些文件进行加密来解决此问题, 确保即使有人获取了该文件,如果没有正确的密码和 step count,内容依然 完全不可读。
## 安全模型 MirageX 构建于生产级、行业标准的加密原语之上。 不涉及任何自定义或实验性的算法。 | 组件 | 实现 | |---|---| | 加密 | AES-256-GCM(认证加密) | | 密钥派生 | Argon2id(密码哈希竞赛冠军) | | 完整性 | GCM 认证标签(检测篡改) | | 随机性 | 每次加密使用密码学安全的随机 salt 和 IV | | 提供者 | Bouncy Castle(经过审计、广泛采用的加密库) | 每次加密操作都会生成唯一的 salt 和初始化向量。 使用相同的密码对同一文件加密两次,每次都会产生不同的输出。 这可以防止模式分析攻击。 GCM 认证标签确保如果加密文件以任何方式被修改或损坏, 解密将立即失败。MirageX 绝不会静默返回 错误或垃圾内容。
## 信任与透明度 MirageX 的构建以透明度为核心原则。 - 完整的源代码在此仓库中可供任何人查阅 - 零出站网络调用。 - 该工具完全在您的本地文件系统上运行 - 不会以任何形式收集、记录或传输任何数据 - 所有加密操作均使用 Bouncy Castle 执行,这是一个著名的、 开源且经过审计的加密库 我们鼓励您在使用前查阅源代码、检查依赖项并从 源码构建该工具。没有任何隐藏内容。
## 功能 - AES-256-GCM 认证加密 - Argon2id 基于密码的密钥派生,具有可配置的迭代次数 - 每次加密操作生成唯一的 salt 和 IV - 通过 GCM 认证内置篡改检测 - 自定义二进制文件头,包含 magic bytes 和版本验证 - 三个专用命令:lock, read, unlock - 彩色终端输出,提供清晰的反馈 - 完全离线,除 Java runtime 外无需任何安装 - 跨平台:可在 Windows、Linux 和 macOS 上运行
## 环境要求 - Java 21 或更高版本 - 任何终端或命令提示符
## 安装说明 **步骤 1 - 下载** 从 [Releases](https://github.com/dulanjayabhanu/miragex/releases) 页面下载适用于您操作系统的最新发布 ZIP 包。 - miragex-1.1.1-linux-mac.zip(Linux 和 macOS) - miragex-1.1.1-windows.zip(Windows) 解压 ZIP 包。里面的两个文件必须保留在同一个文件夹中。 **步骤 2 - 添加到 PATH(仅需一次)** 这允许您从机器上的任何目录运行 `miragex`。 Linux 和 macOS: 首先使包装器脚本可执行。这是一次性操作: ``` chmod +x /path/to/miragex/folder/miragex # 示例: # chmod +x /Users/john/tools/MirageX/miragex ``` 然后通过将此行添加到 `~/.bashrc` (Linux) 或 `~/.zshrc` (macOS) 中,将其永久添加到 PATH: ``` export PATH=$PATH:/path/to/miragex/folder # 示例: # export PATH=$PATH:/Users/john/tools/miragex ``` 应用更改: ``` source ~/.bashrc # 或者用于 macOS source ~/.zshrc ``` Windows PowerShell: ``` [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\path\to\miragex", "User") # 示例: # [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Tools\miragex", "User") ``` 运行此命令后请重启 PowerShell。 **步骤 3 - 验证** ``` miragex --version ```
## 用法 核心工作流非常简单。从目标文件所在的目录打开一个终端, 然后运行相应的命令。 ### 加密文件 ``` miragex lock
```
示例:
```
cd D:\Development\Accounts
miragex lock secrets.txt mypassword 5
```
如果未提供 `password` 和 `step` 数作为参数,MirageX 将提示
您以交互方式输入它们。出于安全考虑,`password` 输入是**隐藏**的。
带参数的示例:
```
miragex lock secrets.txt mypassword 3
```
交互式提示的示例:
```
miragex lock secrets.txt
# 输入密码:
# 输入步数(推荐 3-5):
```
这将在同一目录下创建 `secrets.mgx`。原文件不会被删除。
### 解密至终端
```
miragex read
```
示例:
```
cd D:\Development\Accounts
miragex read secrets.mgx mypassword 5
```
交互式提示的示例:
```
cd D:\Development\Accounts
miragex read secrets.mgx
# 输入密码:
# 输入步数(推荐 3-5):
```
解密后的内容将直接打印到终端。不会写入任何文件。
### 解密至文件
```
miragex unlock
```
示例:
```
cd D:\Development\Accounts
miragex unlock secrets.mgx mypassword 5
```
交互式提示的示例:
```
cd D:\Development\Accounts
miragex unlock secrets.mgx
# 输入密码:
# 输入步数(推荐 3-5):
```
这将在同一目录下重现原始的 `secrets.txt` 文件。
## Step Count step count 控制着密钥派生期间使用的 Argon2id 迭代次数。 step count 越高,意味着派生加密密钥需要更多的计算量, 从而使暴力破解攻击变得极其困难。 | Step Count | 强度 | 用例 | |---|---|---| | 1 - 2 | 基础 | 快速测试 | | 3 - 5 | 强 | 日常使用(推荐) | | 6 - 10 | 非常强 | 高度敏感数据 | 较高的 step count 会增加加密和解密所花费的时间。这是 有意为之的,也是 Argon2id 算法的一个特性。
## 重要警告 **请勿将您的密码或 step count 存储在加密文件所在的同一台机器上。** MirageX 的安全性完全取决于您密码和 step count 的保密性。 如果攻击者同时获取了加密文件和密码,该文件就可能被解密。 建议做法: - 使用您已经记住的、强大且唯一的密码 - 如果必须写下来,请将其存储在单独的、安全的位置 - 切勿将密码保存在同一台机器上的文本文件中 - 切勿将密码或 step count 提交到版本控制系统中
## 文件格式 加密文件使用 `.mgx` 扩展名。每个文件包含一个二进制文件头,其后 紧跟 AES-256-GCM 密文。 - [0-3] Magic number : MRGX - [4] 版本 : 0x01 - [5-20] Salt : 16 bytes (随机) - [21-32] IV : 12 bytes (随机) - [33+] Ciphertext : AES-256-GCM 加密内容
## 从源码构建 ``` git clone https://github.com/dulanjayabhanu/miragex.git cd miragex mvn package ``` JAR 文件将位于 `target/miragex.jar`。 要运行测试: ``` mvn test ```
## 技术栈 | 技术 | 版本 | 用途 | |---|---|---| | Java | 21 | Runtime | | Picocli | 4.7.6 | CLI 框架 | | Bouncy Castle | 1.78.1 | 加密提供者 | | JUnit 5 | 5.10.2 | 单元测试 | | Maven | 3.x | 构建工具 |
## 许可证 MIT 许可证。详情请参阅 [LICENSE](LICENSE)。
## 为什么选择 MirageX 大多数人将敏感信息以纯文本形式存储在他们的机器上。这些文件 容易受到未经授权的访问、意外泄露,或者被第三方 工具(如 AI 编程代理、同步服务或备份软件)读取。 MirageX 通过使用行业标准加密算法对这些文件进行加密来解决此问题, 确保即使有人获取了该文件,如果没有正确的密码和 step count,内容依然 完全不可读。
## 安全模型 MirageX 构建于生产级、行业标准的加密原语之上。 不涉及任何自定义或实验性的算法。 | 组件 | 实现 | |---|---| | 加密 | AES-256-GCM(认证加密) | | 密钥派生 | Argon2id(密码哈希竞赛冠军) | | 完整性 | GCM 认证标签(检测篡改) | | 随机性 | 每次加密使用密码学安全的随机 salt 和 IV | | 提供者 | Bouncy Castle(经过审计、广泛采用的加密库) | 每次加密操作都会生成唯一的 salt 和初始化向量。 使用相同的密码对同一文件加密两次,每次都会产生不同的输出。 这可以防止模式分析攻击。 GCM 认证标签确保如果加密文件以任何方式被修改或损坏, 解密将立即失败。MirageX 绝不会静默返回 错误或垃圾内容。
## 信任与透明度 MirageX 的构建以透明度为核心原则。 - 完整的源代码在此仓库中可供任何人查阅 - 零出站网络调用。 - 该工具完全在您的本地文件系统上运行 - 不会以任何形式收集、记录或传输任何数据 - 所有加密操作均使用 Bouncy Castle 执行,这是一个著名的、 开源且经过审计的加密库 我们鼓励您在使用前查阅源代码、检查依赖项并从 源码构建该工具。没有任何隐藏内容。
## 功能 - AES-256-GCM 认证加密 - Argon2id 基于密码的密钥派生,具有可配置的迭代次数 - 每次加密操作生成唯一的 salt 和 IV - 通过 GCM 认证内置篡改检测 - 自定义二进制文件头,包含 magic bytes 和版本验证 - 三个专用命令:lock, read, unlock - 彩色终端输出,提供清晰的反馈 - 完全离线,除 Java runtime 外无需任何安装 - 跨平台:可在 Windows、Linux 和 macOS 上运行
## 环境要求 - Java 21 或更高版本 - 任何终端或命令提示符
## 安装说明 **步骤 1 - 下载** 从 [Releases](https://github.com/dulanjayabhanu/miragex/releases) 页面下载适用于您操作系统的最新发布 ZIP 包。 - miragex-1.1.1-linux-mac.zip(Linux 和 macOS) - miragex-1.1.1-windows.zip(Windows) 解压 ZIP 包。里面的两个文件必须保留在同一个文件夹中。 **步骤 2 - 添加到 PATH(仅需一次)** 这允许您从机器上的任何目录运行 `miragex`。 Linux 和 macOS: 首先使包装器脚本可执行。这是一次性操作: ``` chmod +x /path/to/miragex/folder/miragex # 示例: # chmod +x /Users/john/tools/MirageX/miragex ``` 然后通过将此行添加到 `~/.bashrc` (Linux) 或 `~/.zshrc` (macOS) 中,将其永久添加到 PATH: ``` export PATH=$PATH:/path/to/miragex/folder # 示例: # export PATH=$PATH:/Users/john/tools/miragex ``` 应用更改: ``` source ~/.bashrc # 或者用于 macOS source ~/.zshrc ``` Windows PowerShell: ``` [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\path\to\miragex", "User") # 示例: # [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Tools\miragex", "User") ``` 运行此命令后请重启 PowerShell。 **步骤 3 - 验证** ``` miragex --version ```
## 用法 核心工作流非常简单。从目标文件所在的目录打开一个终端, 然后运行相应的命令。 ### 加密文件 ``` miragex lock
## Step Count step count 控制着密钥派生期间使用的 Argon2id 迭代次数。 step count 越高,意味着派生加密密钥需要更多的计算量, 从而使暴力破解攻击变得极其困难。 | Step Count | 强度 | 用例 | |---|---|---| | 1 - 2 | 基础 | 快速测试 | | 3 - 5 | 强 | 日常使用(推荐) | | 6 - 10 | 非常强 | 高度敏感数据 | 较高的 step count 会增加加密和解密所花费的时间。这是 有意为之的,也是 Argon2id 算法的一个特性。
## 重要警告 **请勿将您的密码或 step count 存储在加密文件所在的同一台机器上。** MirageX 的安全性完全取决于您密码和 step count 的保密性。 如果攻击者同时获取了加密文件和密码,该文件就可能被解密。 建议做法: - 使用您已经记住的、强大且唯一的密码 - 如果必须写下来,请将其存储在单独的、安全的位置 - 切勿将密码保存在同一台机器上的文本文件中 - 切勿将密码或 step count 提交到版本控制系统中
## 文件格式 加密文件使用 `.mgx` 扩展名。每个文件包含一个二进制文件头,其后 紧跟 AES-256-GCM 密文。 - [0-3] Magic number : MRGX - [4] 版本 : 0x01 - [5-20] Salt : 16 bytes (随机) - [21-32] IV : 12 bytes (随机) - [33+] Ciphertext : AES-256-GCM 加密内容
## 从源码构建 ``` git clone https://github.com/dulanjayabhanu/miragex.git cd miragex mvn package ``` JAR 文件将位于 `target/miragex.jar`。 要运行测试: ``` mvn test ```
## 技术栈 | 技术 | 版本 | 用途 | |---|---|---| | Java | 21 | Runtime | | Picocli | 4.7.6 | CLI 框架 | | Bouncy Castle | 1.78.1 | 加密提供者 | | JUnit 5 | 5.10.2 | 单元测试 | | Maven | 3.x | 构建工具 |
## 许可证 MIT 许可证。详情请参阅 [LICENSE](LICENSE)。
标签:AES-256-GCM, Argon2id, ProjectDiscovery, 域名枚举, 密码学, 手动系统调用, 数据保护, 文件加密