加密文件管理系统

admin 2025年5月23日16:00:13评论3 views字数 2135阅读7分7秒阅读模式

一个基于Flask和Bootstrap的文件管理系统,支持用户权限管理、加密存储和API接口。

可用于团队管理渗透测试报告、POC、EXP等等。

用户A上传POCEXP报告后只有用户A以及管理员能够查看未加密POC,其余人均只能通过API查看加密POC 可编写客户端远程拉取POCEXP后用生成的密钥进行发送POCEXP

功能特点

用户权限管理:管理员和普通用户权限分离文件加密存储:支持使用3DES-CBC加密算法加密文件,并进行Base64编码文件分类管理:支持自定义文件分类可定制上传规则:可配置允许的文件类型简洁现代的界面:基于Bootstrap的响应式界面完善的API接口:支持第三方系统接入C++客户端支持:提供原生Windows C++客户端库及OpenSSL解密实现

系统需求

Python 3.8+支持SQLite (默认), MySQL, PostgreSQL等数据库(C++客户端) OpenSSL 1.1.1+, C++17标准支持

安装步骤

1.

克隆仓库到本地

git clone https://github.com/yourusername/file-manager.gitcd file-manager
2.

创建并激活虚拟环境

# 使用 venv (Python内置)python -m venv venv# WindowsvenvScriptsactivate# Linux/Macsource venv/bin/activate

3.

安装依赖

pip install -r requirements.txt

4.

启动应用

flask run

配置说明

系统配置主要通过以下方式进行:

1.环境变量(推荐用于生产环境)2..env 文件(推荐用于开发环境)3.config.py 文件中的默认配置

主要配置项:

SECRET_KEY: 应用密钥,用于会话安全DATABASE_URL: 数据库连接URLUPLOAD_FOLDER: 文件上传目录MAX_CONTENT_LENGTH: 最大上传文件大小(字节)

文件加密说明

系统现在使用3DES-CBC加密算法对敏感文件进行加密存储,并进行Base64编码处理:

加密流程

1.密钥生成: 使用PBKDF2HMAC算法从密码和盐值派生24字节3DES密钥2.3DES加密: 使用3DES-CBC模式加密文件内容,带PKCS#7填充3.Base64编码: 将加密后的数据进行Base64编码,便于存储和传输4.存储格式: Base64(IV(8字节) + 加密数据)

加密特点

安全性:采用3DES-CBC加密,虽然不如AES现代,但仍然为敏感数据提供充分保护密钥管理:支持基于密码和盐值派生密钥,增强安全性Base64编码:确保加密数据可以安全传输和存储,避免二进制数据引起的问题跨平台兼容:Python服务端和C++客户端均支持相同的加密和编码格式

解密支持

Python服务端: 内置支持文件解密C++客户端: 提供基于OpenSSL的TripleDESDecryptor实现命令行工具: 提供单独的解密命令行工具

API文档

系统提供以下API接口:

获取所有分类

GET /api/categories

获取分类下所有文件

GET /api/categories/<category_id>/files

获取文件属性

GET /api/files/<file_guid>

获取文件内容

GET /api/files/<file_guid>/content

获取文件总数

GET /api/files/count

获取密钥信息

GET /api/keys

下载密钥

GET /api/keys/<key_id>/download

C++客户端库

项目提供了Windows平台的C++客户端库(FileManagerAPI),用于与服务端API进行交互。

主要功能

获取所有文件分类获取指定分类下的文件列表获取文件详细信息下载文件内容计算文件MD5值并进行校验获取文件总数统计使用OpenSSL实现3DES-CBC解密和Base64解码

使用方法

请参考FileManagerAPI/README.md文件了解详细使用方法。

技术规格

加密

算法: 3DES (Triple-DES)模式: CBC (Cipher Block Chaining)密钥长度: 24字节IV长度: 8字节填充: PKCS#7编码: Base64

服务端

Web框架: Flask前端: Bootstrap, jQuery数据库ORM: SQLAlchemy加密库: cryptography

客户端

语言: C++17加密库: OpenSSLHTTP库: WinHTTPJSON解析: nlohmann/json (可选)

开发计划

 添加文件总数统计API 添加密钥下载功能 提供C++客户端库 将AES加密升级为3DES加密并添加Base64编码 实现基于OpenSSL的C++解密器 添加HTTPS支持 支持批量上传/下载 增加文件预览功能 支持更多文件格式 增加文件分享功能 改进C++客户端的Unicode支持

许可证

本项目采用 MIT 许可证

界面:

加密文件管理系统
加密文件管理系统
点击原文链接即可跳转至GITHUB

原文始发于微信公众号(我真不是红队啊):加密文件管理系统

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月23日16:00:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   加密文件管理系统https://cn-sec.com/archives/4083724.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息