# 简单密码机 **Repository Path**: kyojunwang/simple-password-machine ## Basic Information - **Project Name**: 简单密码机 - **Description**: 密码机服务与客户端的实现 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-11-23 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, 密码, 秘钥管理 ## README ## 快速开始 ### 一、目录结构图 ``` ├── /easy-secret-server # 根项目 │ ├── /fast-admin # web管理项目-密码机服务,用于简单管理应用和数字信封功能,并提供密钥获取,实现业务系统的密钥管理 │ ├── /fast-api # api接口项目-空,可以用于开发纯restFul风格项目或提供app接口服务 │ ├── /fast-common # 公共模块 │ ├── /fast-easy-secret # 简单加密模块-简单封装国密加密算法,通过mybatis拦截器和注解来实现实体类入库加密出库解密操作,并可以生成独立项目,与主pom解耦合 │ ├── /fast-generator # 代码生成模块-根据数据库表生成mvc代码 │ ├── /gmhelper # 开源国密模块-GitHub上开源的国密加密算法和证书生成和使用 ``` ### 二、架构说明 ``` 1. 本项目为单springboot微框架项目,spring框架+springMVC框架+mybatisPlus框架,数据存储采用MyCache自定义缓存和持久化到磁盘文件, 虽然连接mysql数据库但并未使用数据库作为密钥存储,加强防gank意识。 2. 实现了简单密码机客户端、密码机服务端模式,最终实现了密码机服务端管理密钥,集成密码机客户端并快速迭代开发。 3. 密码机还采用了pfx证书和sm2算法来进行密钥传输加密,业务系统使用客户端的时候,需要pfx证书、证书密码、应用token、应用id ``` ### 三、密码机服务和客户端使用说明 ####流程图如下: ![客户端与服务端交互流程图](docs/加密机客户端和服务端流程图.png) #### 3.1 客户端使用说明详情参考密码机客户端fast-easy-secret模块下的README.md [密码机客户端: fast-easy-secret](fast-easy-secret/README.md) #### 3.2 服务端使用说明详情参考密码机服务端fast-admin模块下的README.md [密码机服务端: fast-admin](fast-admin/README.md) ### 四、秘钥管理服务和客户端思维导图 ![秘钥管理服务: fast-admin](docs/秘钥管理服务-思维导图.png) ![客户端starter: easy-secret-starter](docs/秘钥管理服务-客户端starter思维导图.png)