本发明涉及智能家居技术领域,具体涉及一种UDP通信实现动态加密方法。
背景技术:
在工业控制应用中,安全控制是非常重要的,目前很多现场控制都没有加密的,很容易被破坏,例如MODBUS,bacnet之类。本发明提出动态加密方法提高了整个系统的安全性。
技术实现要素:
有鉴于此,为了解决现有技术中的上述问题,本发明提出一种UDP通信实现动态加密方法。
本发明通过以下技术手段解决上述问题:
一种UDP通信实现动态加密方法,包括UDP服务端设计流程以及UDP客户端设计流程;
所述UDP服务端设计流程包括命令端口线程设计流程和数据端口线程设计流程;
所述命令端口线程设计流程包括以下步骤:
步骤S101:创建UDP命令端口的线程;
步骤S102:命令端口监听客户端请求,如果有请求消息立即跳转至步骤S103;
步骤S103:使用公共密码KP解密;
步骤S104:判断请求客户请求是否正确,如果是密码请求跳转至步骤S105,否则跳转至步骤S102;
步骤S105:动态生成密码K1并返回到客户端,然后跳转至步骤S102;
所述数据端口线程设计流程包括以下步骤:
步骤S201:创建UDP数据端口的线程;
步骤S202:监听客户端的数据,如果有数据即跳转到S203;
步骤S203:使用密码K1来解密,然后跳转至S204;
步骤S204:验证数据是否正确,如果正确跳转至步骤S205,否则跳转至步骤S202;
步骤S205:处理数据,然后跳转至步骤S202;
所述UDP客户端设计流程包括以下步骤:
步骤S301:创建UDP命令端口的线程;
步骤S302:生产随机数SN;
步骤S303:使用公共密码KP加密请求服务器的动态密码;
步骤S304:等待服务器请求返回,如果有返回并解密返回数据跳转至步骤S305,超时跳转至步骤S302;
步骤S305:验证动态密码是否正确,如果正确即跳转至S306,否则跳转至S302;
步骤S306:创建UDP数据端口的线程;
步骤S307:使用动态密码加密数据,通过数据端口发送给服务器数据端口;
步骤S308:退出连接。
与现有技术相比,本发明的有益效果至少包括:
本发明加强整个系统安全性,有效防止非法控制,大大地提高了整个系统的可靠性及稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明UDP服务端设计流程中命令端口线程设计流程图;
图2是本发明UDP服务端设计流程中数据端口线程设计流程图;
图3是本发明UDP客户端设计流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合附图和具体的实施例对本发明的技术方案进行详细说明。需要指出的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本发明公开了一种UDP通信实现动态加密方法,包括UDP服务端设计流程以及UDP客户端设计流程;
所述UDP服务端设计流程包括命令端口线程设计流程和数据端口线程设计流程;
如图1所示,所述命令端口线程设计流程包括以下步骤:
步骤S101:创建UDP命令端口的线程;
步骤S102:命令端口监听客户端请求,如果有请求消息立即跳转至步骤S103;
步骤S103:使用公共密码KP解密;
步骤S104:判断请求客户请求是否正确,如果是密码请求跳转至步骤S105,否则跳转至步骤S102;
步骤S105:动态生成密码K1并返回到客户端,然后跳转至步骤S102;
如图2所示,所述数据端口线程设计流程包括以下步骤:
步骤S201:创建UDP数据端口的线程;
步骤S202:监听客户端的数据,如果有数据即跳转到S203;
步骤S203:使用密码K1来解密,然后跳转至S204;
步骤S204:验证数据是否正确,如果正确跳转至步骤S205,否则跳转至步骤S202;
步骤S205:处理数据,然后跳转至步骤S202;
如图3所示,所述UDP客户端设计流程包括以下步骤:
步骤S301:创建UDP命令端口的线程;
步骤S302:生产随机数SN;
步骤S303:使用公共密码KP加密请求服务器的动态密码;
步骤S304:等待服务器请求返回,如果有返回并解密返回数据跳转至步骤S305,超时跳转至步骤S302;
步骤S305:验证动态密码是否正确,如果正确即跳转至S306,否则跳转至S302;
步骤S306:创建UDP数据端口的线程;
步骤S307:使用动态密码加密数据,通过数据端口发送给服务器数据端口;
步骤S308:退出连接。
智能家居网关在上电后,首先启动一个UDP服务端,同时并创建一个命令端口线程和一个数据端口线程,命令端口线程主要和UDP客户端交换动态密码,数据端口线程主要负责和UDP客户端的数据通信。UDP客户端启动时先创建一个命令端口的线程,并发送一个密码请求消息到服务端,服务端收到客户端的密码请求消息时,并返回密码到客户端,客户端收到服务端的动态密码,并创建一个数据端口与服务端正常交互数据信息。
本发明加强整个系统安全性,有效防止非法控制,大大地提高了整个系统的可靠性及稳定性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。