Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LynAlbum 1.0.0

加密相册管理系统 — 基于 Tauri + Rust 的桌面端加密图片管理工具。

将敏感图片加密存储于单个 .lva 文件中,通过密码或密码+密钥文件双重认证解锁,支持缩略图预览、安全擦除、碎片整理,以及完整的操作审计日志。


核心功能

1. 加密相册

  • 加密算法:AES-256-GCM(认证加密,防篡改 + 防窃听)
  • 密钥派生:Argon2id (m_cost=65536, t_cost=3, p_cost=1) → HKDF-SHA512 扩展
  • 认证方式:纯密码模式 / 密码 + 密钥文件双重认证
  • 头部结构:1024 字节固定头部,含 magic bytes、版本号、salt、认证标签和签名

2. 缩略图

  • 导入图片时自动生成 200x200 缩略图(JPEG 80%)
  • 缩略图加密存储于 .lva 文件内
  • 浏览时解密缩略图到内存,零明文落盘

3. 照片管理

  • 导入照片:支持 JPG/PNG/GIF/BMP/WebP/TIFF 格式
  • 拖放导入:支持文件/文件夹拖放到窗口
  • 提取照片:解密导出到本地指定目录
  • 批量操作:Ctrl+多选,批量提取、批量删除
  • 新建文件夹:创建子目录组织照片
  • 重命名:文件/文件夹重命名
  • 删除:安全删除照片(覆写密文 + 移除索引)

4. 安全查看(零明文泄露)

  • 缩略图浏览:加密缩略图解密到内存显示
  • 原图预览:解密原图到内存,前端用 blob URL 显示,关闭时自动回收

5. 安全擦除

  • DoD 5220.22-M 7-pass 擦除标准
  • 支持单文件和文件夹递归擦除
  • 每次写入后 fsync 确保落盘

6. 相册销毁

  • 二次确认后执行不可逆销毁
  • 对整个 .lva 文件执行 DoD 7-pass 擦除后删除

7. 碎片整理

  • 压缩冗余空间,整理后自动重新加载

8. 审计日志

  • 记录所有关键操作(创建、打开、导入、提取、删除等)
  • 链式 HMAC 防篡改

9. 内存安全

  • 所有密钥材料使用 zeroize 自动清零
  • 关闭相册时清空所有密钥和缓存

10. 安全加固

  • XSS 防护:所有动态内容 HTML 转义后渲染,审计日志/文件名/对话框均安全处理
  • 密钥派生:锁定密钥使用 HKDF-SHA512(而非单次 SHA-256)
  • 恒定时间比较:审计日志 HMAC 验证使用 subtle::ConstantTimeEq,防止时序侧信道
  • CSP 策略:脚本仅允许自身来源,禁止内联脚本
  • 最小权限:文件系统范围限定为 $APPDATA/LynAlbum/**、桌面、文档、下载
  • 错误隔离:内部 panic 消息不泄露至前端,仅记录到 stderr
  • 鉴权保护:安全删除命令要求相册已打开

项目结构

LynAlbum/
├── Cargo.toml
├── src-tauri/
│   ├── Cargo.toml
│   ├── tauri.conf.json
│   ├── build.rs
│   ├── icons/
│   └── src/
│       ├── main.rs
│       └── commands.rs
├── crates/
│   └── album-core/
│       ├── Cargo.toml
│       └── src/
│           ├── lib.rs
│           ├── album.rs
│           ├── crypto.rs
│           ├── index.rs
│           ├── lock.rs
│           ├── audit.rs
│           ├── wipe.rs
│           └── error.rs
└── ui/
    ├── index.html
    ├── styles.css
    └── app.js

技术栈

技术
前端 HTML + CSS + JavaScript (vanilla)
框架 Tauri 1.x
后端 Rust 2021 Edition
加密 aes-gcm / argon2 / hkdf / hmac / sha2
缩略图 image crate (JPEG 编码)
内存安全 zeroize (ZeroizeOnDrop)
打包 Tauri bundler (NSIS .exe)

编译

cargo install tauri-cli
cargo tauri dev
cargo tauri build

构建产物位于 target/release/bundle/nsis/ 目录下。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages