0284fd866032fedfc7d6ae7abc31e9228e9ad527
7z-encrypt-tui 终端界面
7z-encrypt 文件安全传输系统的终端界面。Python TUI (input() REPL)——原生支持中文输入法, 不需要图形环境, SSH 也能用。
主菜单
1. 上传文件 (7z 压缩 → 加密 → 分卷 → 上传)
2. 任务续传 (断点续传: 只补传缺失卷)
3. 配置 (服务器地址 / token)
4. 文件列表 (ls + 空间配额)
5. 下载文件 (逐卷下载 → 本地解密 → 解压还原)
6. 删除文件 (先 ls 再选 file_id)
7. 密钥导出 (红色风险警告 + 二次确认, 导出权限 600)
8. 密钥导入 (红色风险警告 + 二次确认, 自动备份 keyring.json.bak)
9. 注册账号 (用户名+密码, 成功即登录)
10. 登录 (token 自动保存)
11. 注销 (token 失效)
12. 重新生成密钥 (红色警告 + 二次确认, 旧密文永久不可解)
q. 退出
使用
python3 scripts/tui.py # 源码运行
bin/sz-tui # 或 Nuitka 编译版 (原生二进制)
- 登录门禁: 启动先验证登录, 不登录不能进行文件操作 (只有登录/注册/配置)
- 未登录时文件操作灰掉: 主菜单动态切换, 未登录界面无文件操作项, 强行输入报错 (每次循环重新验证 token, 注销/失效立即回登录界面)
- 服务器地址自动补
http://前缀, 默认从客户端 config.json 读 - 路径输入自动剥引号 (复制路径常带 ' 或 ")
- 上传成功自动清理临时产物, 失败保留可续传
- 所有耗时操作有 tqdm 进度条 (上传卷条 / 下载双层条 / 加密 / 解密)
依赖
- 客户端项目:
/home/lou/文档/7z-encrypt(7 模块 + .venv) - tqdm
架构
tui.py
├─ run() 子进程调 7z-encrypt CLI (cwd=客户端目录, 实时透传输出)
├─ upload() 1/3 7z压缩 → 2/3 加密分卷 → 3/3 上传 → 清理
├─ download() 逐卷下载 + --decrypt 本地解密解压
├─ files_list() ls + 配额
├─ delete_file() ls 展示 → 输 file_id 删除
└─ config() 服务器/token 配置 (调 config.py)
协议
MIT License, Copyright (c) 2026 edgevoid