# tcp_server_golang **Repository Path**: cci8go/tcp_server_golang ## Basic Information - **Project Name**: tcp_server_golang - **Description**: 使用go实现的tcp安全认证通信服务端 - **Primary Language**: Go - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-04-12 - **Last Updated**: 2022-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tcp_server_golang #### 介绍 使用go实现的tcp安全认证通信服务端 #### 软件架构 - 使用golang内置库的net库来完成tcp通信,采用一个客户一个协程的模型。 - 在认证之前,服务和客户采用特定指令来完成认证过程,认证完成才会进入正常的加密通信中。 - 服务器会将一定时间内未认证的连接对象断开。 - 非对称密钥使用的是RSA,会话密钥使用的是AES对称密钥。 #### TCP认证流程图 抱歉图中有一个错误:图中客户收到公钥后,是使用这个公钥来加密生成的会话密钥。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0416/163725_78028416_5380598.png "tcp认证通信流程图.png") #### 安装教程 && 使用说明 认证后的通信在communication方法中: 1. 我们只要在dealReceiveData方法中处理收到的数据。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0415/103037_c05b3031_5380598.png "屏幕截图.png") 1. 发送数据调用ClientConn对象的WriteDecrypt方法就行。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 感谢第三方库 https://github.com/satori/go.uuid #### 致谢 最后如何对您有帮助的话,可以赏作者一杯咖啡,谢谢^_^ ![支付宝收款码](%E6%B5%81%E7%A8%8B%E5%9B%BE/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20211201184501.jpg) ![微信收款码](%E6%B5%81%E7%A8%8B%E5%9B%BE/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20211201184508.jpg)