# TPaSE系统 **Repository Path**: zsmszsms/TPaSE-System ## Basic Information - **Project Name**: TPaSE系统 - **Description**: 基于口令认证的门限对称密钥管理系统的实现。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-07-17 - **Last Updated**: 2024-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TPaSE ## 介绍 基于口令认证的门限对称密钥管理系统的实现。 ## 环境要求 * JDK 11 * JPBC 2.0.0 * MySQL 8.0.36 * Maven 3 * JAVAFX * Netty ## 初始化 * `sql`文件夹:存储不同服务器的数据库表创建命令 * 由于Maven下载不到 JPBC包,所以需要手动导入,导入步骤如下 ![img.png](images/导入JPBC包01.png) ![img.png](images/导入JPBC包02.png) ![img.png](images/导入JPBC包03.png) * 项目运行顺序 GlobalServer -> KeyServer -> StorageServer -> Client * 运行每个项目的 Main 文件 * `boolean isSetup`: 在第一个初始化系统时,设置为 `false`。后续运行设置为 `true`。 ### 相同的配置文件 * `a.propertiees`: JPBC 参数 * `config.properties`: JDBC 数据库连接参数 * `parameters.json`: 当前服务器的 IP 和 端口 * `setupParameters.json`: 存储全局服务器的 IP 和 端口 ### GlobalServer #### 配置文件 * `parameters.properties`: 全局服务器的 IP 和 端口,密钥服务器数量 `n` 和 门限值 `t` #### 主要功能 * 完成系统的全局初始化 * 计算秘密共享方案的密钥份额,将份额分发给密钥服务器 * 分发公开参数给密钥服务器和用户 ### KeyServer #### 配置文件 * `publicParam.json`: 存储全局服务器分发的公开参数 * `secretKey.json`: 存储秘密共享份额 #### 主要功能 * 完成全局初始化 * 接收全局服务器发送的密钥份额和公开参数 * 协助用户计算 * 用户注册 * 用户登录 * 文件密钥份额计算 ### StorageServer #### 主要功能 * 用户认证 * 用户注册 * 用户登录 * 文件功能 * 文件查询 * 文件上传 * 文件下载 * 文件删除 ### Client #### 配置文件 * `clientParameters.json`: 用户 IP 和 端口 * `storageServerParameters.json`: 存储服务器 IP 和 端口 #### 主要功能 * 完成全局初始化 * 接收全局服务器发送的公开参数 * 用户认证 * 用户注册 * 用户登录 * 文件功能 * 文件查询 * 文件上传 * 文件下载 * 文件删除 ## 功能测试 以下对 用户注册、用户登录、文件查询、文件上传、文件下载和文件删除功能 进行测试 测试使用本地的不同端口模拟不同的角色,并进行端口之间的通信。 其中,密钥服务器有3个,门限值为2。下图为不同角色的端口。 |角色 |端口 | |:--------:|:------:| |全局服务器 | 59999 | |存储服务器 | 59998 | |密钥服务器1| 60000 | |密钥服务器2| 60001 | |密钥服务器3| 60002 | ### 用户注册 * 使用 用户名:`huangcm` 密码:`aHcm1024%` 进行注册。 ![alt text](images/用户注册-注册界面.png) * 不同的服务器存储了不同的用户身份认证信息 密钥服务器0 ![alt text](images/用户注册-密钥服务器0数据库记录.png) 密钥服务器1 ![alt text](images/用户注册-密钥服务器1数据库记录.png) 密钥服务器2 ![alt text](images/用户注册-密钥服务器2数据库记录.png) 存储服务器 ![alt text](images/用户注册-存储服务器数据库记录.png) ### 用户登录 * 使用 用户名:`huangcm` 密码:`aHcm1024%` 进行登录。 ![alt text](images/用户登录-登录界面.png) * 登录成功界面 ![alt text](images/用户登录-登录成功界面.png) ### 文件查询 * 登录成功、点击查询按钮和右键刷新时,查询用户拥有的文件 ![alt text](images/文件查询-点击查询按钮后查询文件.png) ### 文件上传 * 点击上传按钮和右键上传时,跳出文件选择界面 ![alt text](images/文件上传-选择上传文件.png) * 文件上传成功 ![alt text](images/文件上传-文件上传成功.png) * 存储服务器数据库新增的记录 ![alt text](images/文件上传-存储服务器数据库记录.png) * 存储服务器上用户上传的文件密文 ![alt text](images/文件上传-存储服务器上用户上传的文件密文.png) ### 文件下载 * 右键需要下载的文件 ![alt text](images/文件下载-点击下载按钮.png) * 文件下载完成 ![alt text](images/文件下载-下载完成.png) * 下载目录展示 ![alt text](images/文件下载-用户下载目录展示.png) ### 文件删除 * 右键文件删除 ![alt text](images/文件删除-右键文件点击删除.png) * 删除成功 ![alt text](images/文件删除-文件删除成功.png) * 存储服务器数据库记录删除 ![alt text](images/文件删除-存储服务器数据库记录删除.png) * 存储服务器目录下密文删除 ![alt text](images/文件删除-存储服务器目录下密文删除.png)