yongjun37/sibeisafe

GitHub: yongjun37/sibeisafe

一个基于 React 和 Flask 构建的全栈文件加密工具,提供 Web 应用和 CLI 两种方式,通过密码或密钥文件对文件进行 AES-256 加解密。

Stars: 0 | Forks: 0

# Sibei Safe 一个 Web 应用程序,允许通过基于密码的加密方式,使用 AES-256 加密(Fernet cipher)对文件进行加密和解密。 ## 技术栈 - **Frontend:** React (JavaScript) - **Backend:** Python, Flask, Flask-CORS - **密码学:** Python `cryptography` 库(AES-256 (Fernet), PBKDF2HMAC, SHA-256) ## 快速开始 ### 环境要求 - python 3.9+ - npm 和 Node.js ### Backend 1. 进入你的 backend 目录。 2. 创建并激活虚拟环境 ***(可选但推荐)*** : python -m venv .venv source venv/bin/activate # 在 Windows 上使用 .venv\Scripts\Activate.ps1 3. 安装依赖项 pip install Flask flask-cors cryptography 4. 启动 Flask 服务器 python app.py # Backend 将运行在 http://localhost:5000 ### Frontend 1. 进入 frontend 目录。 2. 启动开发服务器: npm run dev ## 用法 1. 在浏览器中打开前端应用程序。 2. **加密:** 导航到 Encrypt 视图,上传文件,输入强密码,然后点击“Encrypt”。加密后的文件(以 `.enc` 结尾)将自动下载到你的设备。 3. **解密:** 导航到 Decrypt 视图,上传你的 `.enc` 文件,输入加密时使用的确切密码,然后点击“Decrypt”。原始文件将被还原并下载。 ## CLI 工具 `crypto.py` 模块是该应用程序的核心组件,可以作为独立的 Python 脚本使用,也可以导入到其他项目中。 其中一个用例是 CLI 工具,这也是它在演变为 Web 应用程序之前的最初用例。 ### 用法: #### 1. 生成加密密钥文件 ``` python crypto_cli.py genkey --out mykey.key # Creates a new encryption key and saves it to my.key ``` #### 2. 加密文件 **使用密钥文件:** ``` python crypto_cli.py encrypt --in document.pdf --out document.pdf.enc --key my.key ``` **使用密码:** ``` python crypto_cli.py encrypt --in document.pdf --out document.pdf.enc --password # 系统将提示您输入并确认密码 ``` #### 3. 解密文件 **使用密钥文件:** ``` python crypto_cli.py decrypt --in document.pdf.enc --out document.pdf --key mykey.key ``` **使用密码:** ``` python crypto_cli.py decrypt --in document.pdf.enc --out document.pdf --password # 系统将提示您输入密码 ``` #### 4. 校验文件 Hash(完整性检查) **生成 hash:** ``` python crypto_cli.py hash --in document.pdf # Output: SHA-256: a3c5f9e2b1d4c8a7f6e5... ``` **验证文件完整性:** ``` python crypto_cli.py verify --in document.pdf --hash a3c5f9e2b1d4c8a7f6e5... # Output: ✅ 文件完整性已验证 ``` ### 退出码 | 代码 | 含义 | | ---- | -------------------------------------------------- | | `0` | 成功 | | `1` | 用户/文件错误(缺少文件、输入无效) | | `2` | 加密失败(密钥/密码错误、文件被篡改) | ## 路线图与未来改进 - **批量与目录加密:** 允许用户安全地一次性处理多个文件或整个文件夹。 - **预加密压缩:** 通过在加密前压缩文件来优化存储和传输时间。 - **云基础设施 (AWS S3):** 从本地文件处理过渡到安全、可扩展的云对象存储。 - **UI/UX 增强:** 继续优化 Web 界面,以提供更流畅、更直观的用户体验。 ## 已完成开发内容 - **CLI 工具:** 开发了一个安全的命令行界面(`crypto_cli.py`),以直接与主加密引擎(`crypto.py`)进行交互 - **Frontend 和 Backend 集成:** 成功将 React UI 与 Flask 加密引擎连接起来。 ## 作者注记 我开发 Sibei Safe 作为一个实践项目,以加深我对全栈开发和安全文件处理的实际理解。构建这个工具让我探索了几个关键概念。 ### 学到的概念: - **应用密码学:** 实现对称加密、基于密码的密钥派生 (PBKDF2) 以及安全地处理加密失败。 - **安全工具:** 为底层加密引擎设计了一个健壮的命令行界面。 - **全栈架构:** 学习了 React 和 Flask 的基础知识,并成功地在现代前端和 Python 后端之间建立了桥梁。
标签:Flask, React, Syscalls, 全栈应用, 密码学, 手动系统调用, 数据可视化, 文件加密, 逆向工具