# HFSSharp **Repository Path**: haozekang/HFSSharp ## Basic Information - **Project Name**: HFSSharp - **Description**: 这是一个采用国密算法的文件共享服务,旨在为用户提供便捷、安全的文件上传、管理和共享功能。 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-12 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HFSSharp 项目说明 HFSSharp 是一个基于 ASP.NET Core 的开源文件存储与共享系统,支持用户注册、登录、文件上传与下载、文件夹管理、邀请码机制、在线办公文档编辑(需要自己搭建OnlyOffice)等功能。适用于个人或团队进行私有文件管理与共享。 主要定位于个人博主使用。起源于安装Linux时,尝试上传一个文件,结果各大网盘没有直链下载,并且考虑文件涉密,所以有了该项目的诞生。 本人常使用的场景如下: - 小文件传输,比如Ubuntu的源文件,直接一个curl下载 - 涉密文件的传输 - 大文件免客户端分享 - txt、md文档、office文档的在线编辑 ## 功能特性 - **用户管理** - 用户注册/登录/修改密码 - 管理员可管理用户账户 - 邀请码注册机制 - **文件与文件夹管理** - 创建、删除文件夹 - 支持大文件分片上传 - 支持 ZIP/TAR 打包下载 - **权限与安全** - 基于角色的访问控制(如管理员、普通用户) - 邀请码生成与管理 - 使用 SM2 加密算法进行数据加密与解密(尚未全部实现,后续采用量子密钥交换➕SM2/3/4全链路实现,即使你用的是http也没事) - **共享与下载** - 支持文件共享(尚未实现带密码与有效期) - 支持直接下载与通过链接下载 - 支持在线查看 Office 文档(配置OnlyOffice) - **前端界面** - 基于 Bootstrap 与 Bootstrap Icons 的响应式 UI - 支持 CodeMirror、Markdown、JavaScript、CSS 等前端组件 ## 技术架构 - **后端** - 使用 C# 编写,基于 ASP.NET Core MVC - 使用 Chloe 进行数据库操作 - 使用 Identity 实现用户身份验证与角色管理 - 使用 SM2/3/4 加密算法进行安全处理 - 使用 Cookie、Session、MemoryCache 实现用户状态管理 - **前端** - 使用 Bootstrap 5 构建响应式布局 - 使用 Bootstrap Icons 提供图标支持 - 使用 jQuery、CodeMirror 等构建交互式界面 - **数据库** - 使用 SQLite(默认)或支持其他数据库 - 数据模型包括用户、文件、文件夹、邀请码、共享链接等 ## 安装与部署 ### 依赖环境 - .NET 8 SDK 或更高版本 ### 克隆项目 直接VS运行 ```bash git clone https://gitee.com/haozekang/HFSSharp.git cd HFSSharp ``` ## 配置说明 - 配置文件位于 `appsettings.json` - 可配置数据库连接、SMTP 邮件设置、系统标题、文件存储路径、通信的SM2公私钥、OnlyOffice密钥等 > SM2密钥对是``必须``要生成并配置的,数据库连接、文件存储路径都是必须项! > SM2密钥对生成可以使用在线生成工具生成,也可以使用第三方工具生成,如:[https://www.btool.cn/sm2-key-generator](https://www.btool.cn/sm2-key-generator) > SM2公钥是两段,前段是x,后段是y,中间截取!公钥x、公钥y、私钥,三个是一样长度的! ## 使用说明 - **注册账户** - 需要有效的邀请码(由管理员生成) - **上传文件** - 支持拖拽上传、分片上传(支持大文件) - **下载与打包** - 支持 ZIP/TAR 打包下载 - **共享文件** - 支持生成带密码与有效期的共享链接 - **在线办公** - 支持查看 Office 文档(依赖 OnlyOffice 或其他兼容服务) ## 开发者工具 - 使用 `Program.cs` 初始化系统参数 - 使用 `DbHelper.cs` 初始化数据库结构 - 使用 `SM2Helper.cs` 进行加密与解密操作 - 使用 `SendMailHelper.cs` 进行邮件发送 - 使用 `PasswordGeneratorHelper.cs` 生成安全密码 ## 目录结构 ``` HFSSharp/ │ ├── Controllers/ # MVC 控制器 ├── Models/ # 页面模型与视图模型 ├── Views/ # Razor 视图 ├── Entitys/ # 数据实体类 ├── Enums/ # 系统枚举 ├── Helper/ # 工具类与辅助函数 ├── Dtos/ # 数据传输对象 ├── wwwroot/ # 静态资源(CSS、JS、图标等) │ ├── appsettings.json # 配置文件 ├── Program.cs # 系统启动配置 ├── HFSSharp.csproj # 项目文件 └── SQL/ # 数据库脚本 ``` ## 运行截图 - 登录界面 ![截图](Images/1.png) - 登录失败界面 ![截图](Images/2.png) - 注册界面 ![截图](Images/3.png) - 目录/文件查看界面 ![截图](Images/4.png) - 大文件上传界面 ![截图](Images/5.png) - 大文件上传界面 ![截图](Images/6.png) - 新建目录 ![截图](Images/7.png) - 子目录查看 ![截图](Images/8.png) - 直链分享 ![截图](Images/9.png) - 邀请码管理 ![截图](Images/10.png) - 邀请码管理 ![截图](Images/11.png) - 用户管理 ![截图](Images/12.png) - 用户邀请 ![截图](Images/13.png) - 密码修改 ![截图](Images/14.png) - 数据库结构 ![截图](Images/15.png) - 文档存储结构 ![截图](Images/16.png) - 文档存储结构 ![截图](Images/17.png) - 文档存储结构 ![截图](Images/18.png) - 文档存储结构 ![截图](Images/19.png) - 文档存储结构 ![截图](Images/20.png) ## 贡献指南 欢迎提交 Pull Request,贡献代码或文档。请遵循以下步骤: 1. Fork 项目 2. 创建新分支(feature/your-feature-name) 3. 提交代码并测试 4. 提交 PR 或 Issue 报告 bug ## 开源许可 本项目采用 Apache-2.0 License,请参见 [LICENSE](LICENSE) 文件。 ## 联系方式 如有问题或建议,欢迎在 Gitee 项目页面提交 Issue 或联系作者。 > 项目地址:[https://gitee.com/haozekang/HFSSharp](https://gitee.com/haozekang/HFSSharp)