# IVAULT **Repository Path**: azhu949_admin/ivault ## Basic Information - **Project Name**: IVAULT - **Description**: 一个基于electron的开源密码管理应用 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-20 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🔐 密码管理器 一个基于 Electron + Vue 3 + TypeScript 开发的**安全、现代化**的本地密码管理应用。 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Electron](https://img.shields.io/badge/Electron-30.0.1-47848F?logo=electron)](https://www.electronjs.org/) [![Vue](https://img.shields.io/badge/Vue-3.4.21-4FC08D?logo=vue.js)](https://vuejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.2.2-3178C6?logo=typescript)](https://www.typescriptlang.org/) ## ✨ 功能特性 ### 🔒 安全性 - **主密码保护** - 使用主密码加密所有数据,主密码采用 SHA-256 哈希存储 - **AES 加密** - 采用 AES-256 加密算法保护敏感信息 - **自动锁定** - 设置空闲超时时间(1-60分钟),无操作后自动锁定应用 - **本地存储** - 所有数据存储在本地,不上传到任何服务器 - **内存保护** - 应用锁定后自动清除内存中的敏感数据 ### 🎯 功能亮点 - **密码生成器** - 生成强密码,支持自定义长度和字符类型 - **分类管理** - 按文件夹分类组织密码(工作、个人、财务等) - **快速搜索** - 实时搜索密码条目,支持标题、用户名、网站搜索 - **一键复制** - 快速复制用户名和密码到剪贴板 - **密码强度检测** - 实时显示密码强度指示器 - **导入导出** - 支持加密的密码库导入和导出功能 - **主题切换** - 支持浅色/深色主题模式 ### 🎨 用户体验 - **现代化 UI** - 采用毛玻璃效果和渐变设计 - **响应式布局** - 适配不同屏幕尺寸 - **流畅动画** - 精心设计的过渡动画和交互效果 - **直观操作** - 简洁易用的用户界面 ## 📋 系统要求 - **操作系统**: Windows 10/11, macOS 10.13+, Linux - **Node.js**: 16.x 或更高版本 - **npm**: 7.x 或更高版本 - **内存**: 建议 4GB 以上 - **磁盘空间**: 至少 200MB 可用空间 ## 🚀 快速开始 ### 1️⃣ 克隆项目 ```bash git clone https://gitee.com/azhu949_admin/ivault cd ivault ``` ### 2️⃣ 安装依赖 ```bash npm install ``` ### 3️⃣ 开发模式 启动开发服务器,支持热重载: ```bash npm run dev ``` ### 4️⃣ 构建应用 构建生产版本的可执行文件: ```bash npm run build ``` 构建完成后,可执行文件将在 `release/{version}` 目录中: - **Windows**: `ivalut-Windows-{version}-Setup.exe` - **macOS**: `ivalut-Mac-{version}-Installer.dmg` - **Linux**: `ivalut-Linux-{version}.AppImage` ## 🛠️ 技术栈 ### 核心技术 - **[Vue 3](https://vuejs.org/)** - 渐进式 JavaScript 框架 - **[TypeScript](https://www.typescriptlang.org/)** - 类型安全的 JavaScript 超集 - **[Electron](https://www.electronjs.org/)** - 跨平台桌面应用框架 - **[Vite](https://vitejs.dev/)** - 下一代前端构建工具 ### 依赖库 - **[Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API)** - 原生加密 API (SHA-256, AES-256) - **[Lucide Vue Next](https://lucide.dev/)** - 精美的开源图标库 - **[Electron Builder](https://www.electron.build/)** - 应用打包和分发工具 ### 开发工具 - **Vue TSC** - Vue 的 TypeScript 类型检查 - **Vite Plugin Electron** - Electron 开发插件 ## 📖 使用说明 ### 首次使用 1. 启动应用后,设置一个强主密码 2. **重要**: 请牢记主密码,无法找回! 3. 主密码用于加密和解密所有密码数据 ### 添加密码 1. 点击"添加密码"按钮 2. 填写标题、用户名、密码等信息 3. 可以使用密码生成器创建强密码 4. 选择合适的分类 5. 点击"添加密码"保存 ### 查看和编辑密码 1. 在列表中点击密码条目 2. 查看详细信息 3. 点击复制按钮快速复制用户名或密码 4. 点击编辑按钮修改信息 5. 点击删除按钮删除条目 ### 搜索和筛选 - 使用搜索框快速查找密码 - 点击分类标签筛选特定类型的密码 ### 自动锁定设置 1. 点击顶部工具栏的"设置"按钮(齿轮图标) 2. 在设置对话框中启用或禁用自动锁定功能 3. 选择空闲超时时间(1-60分钟) 4. 点击"保存"应用设置 5. 当应用在设置的时间内无任何操作时,将自动锁定以保护您的密码 ### 主题切换 1. 点击顶部工具栏的"设置"按钮 2. 在"外观"部分选择浅色或深色主题 3. 主题设置会自动保存并应用 ### 导入导出密码库 **导出密码库:** 1. 点击顶部工具栏的"导出"按钮 2. 输入主密码进行验证 3. 选择保存位置,文件将以加密格式保存 **导入密码库:** 1. 点击顶部工具栏的"导入"按钮 2. 选择之前导出的加密文件 3. 输入导出时使用的主密码 4. 确认导入,现有数据将被替换 ### 安全提示 - ✅ 定期更换重要账户的密码 - ✅ 为不同网站使用不同的密码 - ✅ 使用密码生成器创建强密码(建议16位以上) - ✅ 不要与他人分享主密码 - ✅ 定期备份密码数据(使用导出功能) - ✅ 启用自动锁定功能,离开时保护数据 - ⚠️ 主密码一旦忘记无法找回,请务必牢记 ## 🔒 安全性说明 ### 加密机制 - **AES-256 加密**: 所有密码数据使用 AES-256-CBC 加密算法存储 - **SHA-256 哈希**: 主密码使用 SHA-256 单向哈希,不可逆向破解 - **密钥派生**: 使用主密码作为加密密钥,确保只有您能解密数据 ### 数据存储 - **本地存储**: 所有数据存储在本地 localStorage,不上传到任何服务器 - **加密存储**: 密码条目和文件夹信息均以加密形式存储 - **隔离存储**: 不同用户的数据完全隔离 ### 安全保护 - **内存清除**: 应用锁定后,内存中的敏感数据会被立即清除 - **自动锁定**: 支持自动锁定功能,可自定义空闲超时时间(1-60分钟,默认5分钟) - **会话管理**: 每次解锁都需要验证主密码 - **导出加密**: 导出的密码库文件同样使用主密码加密 ### 安全建议 - 使用强主密码(建议包含大小写字母、数字和特殊字符,长度至少12位) - 不要在不安全的环境中使用本应用 - 定期备份密码库到安全的位置 - 不要将主密码告诉任何人 ## 📝 开发说明 ### 项目结构 ``` ivalut/ ├── src/ # 源代码目录 │ ├── components/ # Vue 组件 │ │ ├── MasterPasswordSetup.vue # 主密码设置/解锁界面 │ │ ├── PasswordList.vue # 密码列表组件 │ │ ├── PasswordDetail.vue # 密码详情查看/编辑 │ │ ├── AddPasswordForm.vue # 添加密码表单 │ │ ├── FolderForm.vue # 文件夹管理表单 │ │ ├── SettingsDialog.vue # 设置对话框 │ │ └── ConfirmDialog.vue # 确认对话框 │ ├── store/ # 状态管理 │ │ └── passwordStore.ts # 密码存储和管理逻辑 │ ├── types/ # TypeScript 类型定义 │ │ └── index.ts # 全局类型定义 │ ├── utils/ # 工具函数 │ │ └── crypto.ts # 加密解密工具 │ ├── App.vue # 主应用组件 │ ├── main.ts # 应用入口 │ └── style.css # 全局样式 ├── electron/ # Electron 相关 │ ├── main.ts # Electron 主进程 │ └── preload.ts # 预加载脚本 ├── public/ # 静态资源 ├── dist/ # 构建输出(前端) ├── dist-electron/ # 构建输出(Electron) ├── release/ # 打包输出 ├── package.json # 项目配置 ├── vite.config.ts # Vite 配置 ├── electron-builder.json5 # Electron Builder 配置 └── tsconfig.json # TypeScript 配置 ``` ### 核心模块说明 #### PasswordStore (`src/store/passwordStore.ts`) - 管理应用状态(密码条目、文件夹、设置等) - 提供加密/解密功能 - 处理数据的持久化存储 - 实现导入/导出功能 #### Crypto Utils (`src/utils/crypto.ts`) - 封装 Web Crypto API - 提供 AES-256 加密/解密方法 - 实现密码哈希功能 #### 组件架构 - **MasterPasswordSetup**: 首次设置主密码或解锁界面 - **PasswordList**: 显示密码列表,支持搜索和筛选 - **PasswordDetail**: 查看和编辑密码详情 - **AddPasswordForm**: 添加新密码,集成密码生成器 - **SettingsDialog**: 应用设置(自动锁定、主题等) ### 开发指南 #### 添加新功能 1. 在 `src/types/index.ts` 中定义相关类型 2. 在 `passwordStore.ts` 中添加状态管理逻辑 3. 创建或修改相应的 Vue 组件 4. 更新 `App.vue` 集成新功能 #### 调试技巧 ```bash # 开启 Vue DevTools npm run dev # 查看 Electron 控制台 # 在应用中按 Ctrl+Shift+I (Windows/Linux) 或 Cmd+Option+I (macOS) ``` #### 代码规范 - 使用 TypeScript 严格模式 - 遵循 Vue 3 Composition API 风格 - 组件使用 `