Skip to content

panyingyun/Realm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Realm 密码本

Realm 是一个安全、易用的密码管理工具,提供命令行和图形界面两个版本,帮助您安全地管理各种网站和应用的密码信息。

📋 项目概述

Realm 密码本是一个基于 Go 语言开发的密码管理工具,使用 SQLite 数据库存储加密的密码信息。所有密码都通过 AES-256-CBC 算法加密存储,确保数据安全。项目采用主密码保护机制,只有输入正确的主密码才能访问存储的密码数据。

🎯 项目特点

  • 🔐 强大的加密保护: 使用 AES-256-CBC 算法加密存储所有密码
  • 🔑 主密码机制: 通过单一主密码保护所有数据访问
  • 💾 本地存储: 数据完全存储在本地 SQLite 数据库,不会上传到任何服务器
  • 📦 多版本支持: 提供命令行和图形界面两个版本,满足不同用户需求
  • 🆓 开源免费: 基于 GPL-3.0 许可证,完全开源
  • 🚀 轻量高效: 程序小巧,运行快速,资源占用低

📁 项目结构

Realm/
├── realm-cmder/          # 命令行版本(Realm CLI)
│   ├── main.go     # 程序入口
│   ├── helper/     # 核心功能模块
│   ├── dao/        # 数据访问层
│   ├── docs/       # 命令行版本文档和截图
│   └── README.md   # 命令行版本详细文档
├── realm-gui/            # 图形界面版本(开发中)
├── docs/           # 项目文档和截图
│   ├── realm_login/    # 登录功能演示
│   ├── realm_add/      # 添加密码功能演示
│   └── realm_query/    # 查询密码功能演示
├── LICENSE         # GPL-3.0 许可证
└── README.md       # 本文件

🚀 快速开始

命令行版本(Realm CLI)

命令行版本已经开发完成,提供了完整的密码管理功能。

系统要求

  • Go 1.23.4 或更高版本
  • Linux/macOS/Windows 操作系统

安装使用

  1. 进入命令行版本目录:
cd realm-cmder
  1. 安装依赖:
go mod tidy
  1. 构建程序:
make build
#
go build -o Realm .
  1. 运行程序:
./Realm
#
make run

详细的命令说明和使用指南请参考 realm-cmder/README.md

主要功能

  • ✅ 主密码登录/设置
  • ✅ 添加/更新密码记录
  • ✅ 查询密码
  • ✅ 列出所有密码
  • ✅ 密码统计
  • ✅ 密码生成器
  • ✅ 导出密码列表

功能演示

项目提供了详细的功能演示文档,位于 docs/ 目录:

  • 登录功能: 查看 realm_login/ 了解登录流程
  • 添加密码: 查看 realm_add/ 了解如何添加密码
  • 查询密码: 查看 realm_query/ 了解如何查询密码

图形界面版本(GUI)

图形界面版本正在开发中,将提供更加直观友好的用户界面,让密码管理更加便捷。

状态: 🚧 开发中

GUI 版本将包含以下特性:

  • 🎨 现代化的图形用户界面
  • 🖱️ 鼠标操作,更加直观
  • 🔍 搜索和筛选功能
  • 📊 可视化数据展示
  • 💾 数据导入/导出功能
  • 🔄 与命令行版本数据兼容

🔒 安全特性

加密机制

  • 加密算法: AES-256-CBC
  • 密钥生成: 基于主密码的 MD5 哈希生成密钥和 IV
  • 数据存储: 所有密码以加密形式存储在 SQLite 数据库中

安全建议

  1. 使用强主密码: 建议使用包含大小写字母、数字和特殊字符的复杂密码
  2. 定期备份: 定期备份 realm.db 数据库文件
  3. 保护数据库文件: 确保数据库文件权限设置正确,避免未授权访问
  4. 记住主密码: 主密码不会存储在系统中,丢失主密码将无法恢复数据
  5. 本地存储: 数据库文件存储在本地,请妥善保管

📊 数据库结构

项目使用 SQLite 数据库存储密码信息,数据结构如下:

CREATE TABLE `realm` (
   `id` INTEGER PRIMARY KEY NOT NULL,
   `domain` varchar(255) NOT NULL,
   `user` varchar(255) NOT NULL,
   `pwdd` varchar(255) NOT NULL,
   `created_at` datetime DEFAULT NULL,
   `updated_at` datetime DEFAULT NULL,
   `deleted_at` datetime DEFAULT NULL
);

🛠️ 技术栈

命令行版本

  • 编程语言: Go 1.23.4
  • 数据库: SQLite (使用 github.com/glebarez/sqlite)
  • ORM: GORM (gorm.io/gorm, gorm.io/gen)
  • REPL: github.com/openengineer/go-repl
  • 加密算法: AES-256-CBC

图形界面版本

  • 状态: 开发中
  • 技术选型: 待定

📖 使用文档

🗺️ 开发路线图

已完成 ✅

  • 命令行版本核心功能开发
  • AES 加密/解密实现
  • SQLite 数据库集成
  • 密码生成器
  • 命令行版本文档

开发中 🚧

  • 图形界面版本开发

计划中 📋

  • GUI 版本界面设计
  • GUI 版本数据兼容性
  • 数据导入/导出功能增强
  • 密码强度检测
  • 自动备份功能
  • 多语言支持

🤝 贡献

欢迎提交 Issue 和 Pull Request!

在贡献代码之前,请确保:

  1. 代码符合项目的编码规范
  2. 添加必要的测试
  3. 更新相关文档
  4. 遵循 GPL-3.0 许可证

📄 许可证

本项目采用 GNU General Public License v3.0 (GPL-3.0) 许可证。详情请参阅 LICENSE 文件。

⚠️ 重要提示

  1. 主密码安全: 主密码不会存储在系统中,请务必牢记您的主密码。忘记主密码将无法恢复数据。

  2. 数据备份: 建议定期备份 realm.db 数据库文件,避免数据丢失。

  3. 数据安全: 请妥善保管数据库文件,避免泄露给未授权人员。

  4. 版本兼容性: 命令行版本和 GUI 版本将使用相同的数据格式,确保数据可以在两个版本间共享。

📞 联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送 Pull Request

🙏 致谢

感谢所有为开源密码管理工具发展做出贡献的开发者!


注意: 本项目正在积极开发中,GUI 版本即将推出,敬请期待!

About

Realm is a cross-platform password-protected notepad for you.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published