# 基于SM2的密钥协商协议的实现 **Repository Path**: houjunpeng/SM2-manage ## Basic Information - **Project Name**: 基于SM2的密钥协商协议的实现 - **Description**: 基于SM2的密钥协商协议的实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-11 - **Last Updated**: 2023-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于SM2的密钥协商协议的实现 #### 介绍 基于SM2的密钥协商协议的实现; 密钥交换功能实现双方的通信,本系统设计阶段在一台电脑上进行测试,前端输入,输出协商密钥 后端代码基于springboot实现,前端基于vue实现 #### 流程介绍 1. 选择椭圆曲线参数。选择椭圆曲线参数 (a.b,p,G,n.h),其中a、b、p是圆曲线的参数,G是圆曲线上的基点,n是G的阶h是圆曲线的余因子。 2. 双方生成钥对。甲方和乙方分别生成自己的密钥对,即公钥和私钥。 3. 甲方生成临时公钥。甲方随机选择一个数k,计算点C1=kG,并将C1发送给乙方 4. 乙方生成临时公钥。乙方随机选择一个数,计算点C2=IG,并将C2发送给甲方. 5. 甲方计算共享密钥。甲方使用自己的私钥dA计算点S=dA(C2),并将S发送给乙方 6. 乙方计算共享密钥。乙方使用自己的私钥dB计算点S=dB(C1),并将S发送给甲方7.双方计算对称密钥。 7. 方和乙方分别使用共享密S计算对称密钥K,用于后续的加解密操作。 #### 软件架构 基于springboot+vue实现 #### 安装教程 1. linux安装jdk1.8,nginx,nohup 2. 后端代码执行mvn package;得到jar包 3. 将jar包及dist文件放到服务器上 4. nginx.conf中增加如下配置: \ server { listen 8081; server_name localhost; location /generate { proxy_pass http://localhost:8089/generate; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } root /usr/local/fontend/dist; index /index.html; } \ 5. 前端使用ip+8081访问即可 #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)