数据传输方法、终端设备、服务器、系统及存储介质与流程

文档序号:23426375发布日期:2020-12-25 11:56阅读:111来源:国知局
数据传输方法、终端设备、服务器、系统及存储介质与流程

本发明涉及通信领域,特别涉及一种数据传输方法、设备、终端设备、服务器、系统及存储介质。



背景技术:

近年来,随着通信技术的发展,对通信的实时性有着越来越高的要求。目前,为了实现实时推送,主要有轮询以及服务器推送等方法,但是这些方法的实现都是基于http(hypertexttransferprotocol,超文本传输协议)的,基于http进行通信,需要不断向服务器发出http请求,但是http请求会包含较长的头部,这样会浪费很多资源。

为了能更好地节省服务器资源和带宽,并且能够更实时地进行通讯,websocket(基于tcp的全双工通信协议)应运而生。然而,基于websocket进行通信时,终端设备与服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,跨站劫持风险高,降低了通信的安全性。



技术实现要素:

本发明的主要目的是提供一种数据传输方法、设备、终端设备、服务器、系统及存储介质,旨在解决现有技术中基于websocket进行通信时,跨站劫持风险高,通信安全性低的技术问题。

为实现上述目的,本发明提出一种数据传输方法,应用于终端设备,所述数据传输方法包括以下步骤:

与服务器建立websocket连接;

基于所述websocket连接,向所述服务器发送所述终端设备的第一标识信息,以使所述服务器基于所述第一标识信息和所述服务器上存储的所述终端设备的第二标识信息,对所述终端设备进行认证;

接收所述服务器发送的认证成功响应;

基于所述认证成功响应,与所述服务器进行数据传输。

可选的,

所述认证成功响应包括:加密密钥;

所述基于所述认证成功响应,与所述服务器进行数据传输的步骤包括:

获取待传输数据;

基于所述加密密钥,通过预设加密算法对所述待传输数据进行加密,以获得数据密文;

基于所述数据密文和所述第一标识信息,生成数据包;

基于所述websocket连接,将所述数据包发送给所述服务器。

可选的,

所述预设加密算法为高级加密标准aes加密算法,所述基于所述加密密钥,通过预设加密算法对所述待传输数据进行加密,以获得数据密文的步骤包括:

生成所述aes加密算法的偏移量;

基于所述偏移量和所述加密密钥,通过所述aes加密算法对所述待传输数据进行加密,以得到数据密文;

所述基于所述数据密文和所述第一标识信息,生成数据包的步骤包括:

基于所述数据密文、所述第一标识信息以及所述偏移量,生成数据包。

此外,为实现上述目的,本发明还提出一种数据传输方法,应用于服务器,所述数据传输方法包括以下步骤:

与终端设备建立websocket连接;

基于所述websocket连接,接收所述终端设备发送的所述终端设备的第一标识信息;

基于所述第一标识信息、以及所述服务器上存储的所述终端设备的第二标识信息,对所述终端设备进行认证;

在认证成功后,向所述终端设备发送认证成功响应,以使所述终端设备基于所述认证成功响应,与所述服务器进行数据传输。

可选的,

所述在认证成功后,向所述终端设备发送认证成功响应的步骤包括:

在认证成功后,生成加密密钥;

基于所述加密密钥生成认证成功响应,所述认证成功响应包括所述加密密钥;

将所述认证成功响应发送给所述终端设备。

可选的,

所述将所述认证成功响应发送给所述终端设备的步骤之后,还包括:

接收所述终端设备发送的数据包,所述数据包包括数据密文和所述第一标识信息;

基于所述数据包中的第一标识信息和所述第二标识信息,对所述终端设备进行认证;

在认证成功后,基于所述加密密钥,通过预设解密算法对所述数据密文进行解密,以获得待传输数据。

可选的,

所述预设解密算法为aes解密算法,所述数据包还包括偏移量,所述基于所述加密密钥,通过预设解密算法对所述数据密文进行解密,以获得待传输数据的步骤包括:

基于所述加密密钥以及所述偏移量,通过所述aes解密算法对所述数据密文进行解密,以获得待传输数据。

可选的,

所述与终端设备建立websocket连接的步骤之后,还包括:

判断与所述终端设备未存在数据传输的时间,是否大于预设时间阈值;

若是,断开所述websocket连接。

此外,为实现上述目的,本发明还提出一种数据传输设备,应用于终端设备,所述数据传输设备包括:

连接模块,用于与服务器建立websocket连接;

发送模块,用于基于所述websocket连接,向所述服务器发送所述终端设备的第一标识信息,以使所述服务器基于所述第一标识信息和所述服务器上存储的所述终端设备的第二标识信息,对所述终端设备进行认证;

接收模块,用于接收所述服务器发送的认证成功响应;

传输模块,用于基于所述认证成功响应,与所述服务器进行数据传输。

此外,为实现上述目的,本发明还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行数据传输程序,所述数据传输程序被所述处理器执行时实现前述数据传输方法中终端设备侧的步骤。

此外,为实现上述目的,本发明还提出一种数据传输设备,应用于服务器,所述数据传输设备包括:

连接模块,用于与终端设备建立websocket连接;

接收模块,用于基于所述websocket连接,接收所述终端设备发送的所述终端设备的第一标识信息;

认证模块,用于基于所述第一标识信息、以及所述服务器上存储的所述终端设备的第二标识信息,对所述终端设备进行认证;

发送模块,用于在认证成功后,向所述终端设备发送认证成功响应,以使所述终端设备基于所述认证成功响应,与所述服务器进行数据传输。

此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行数据传输程序,所述数据传输程序被所述处理器执行时实现如前述数据传输方法中服务器侧的步骤。

此外,为实现上述目的,本发明还提出一种数据传输系统,所述数据传输系统包括:终端设备和服务器;

所述终端设备与服务器建立websocket连接;基于所述websocket连接,向所述服务器发送所述终端设备的第一标识信息;

所述服务器在接收到所述第一标识信息后,基于所述第一标识信息、以及所述服务器上存储的所述终端设备的第二标识信息,对所述终端设备进行认证,并在认证成功后,向所述终端设备发送认证成功响应;

所述终端设备在接收到所述认证成功响应后,基于所述认证成功响应,与所述服务器进行数据传输。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现前述数据传输方法的步骤。

本发明技术方案通过采用一种数据传输方法,所述数据传输方法包括以下步骤:终端设备与服务器建立websocket连接后,基于websocket连接,向服务器发送终端设备的第一标识信息;服务器在接收到第一标识信息后,基于第一标识信息、以及服务器上存储的终端设备的第二标识信息,对终端设备进行认证,在认证成功后,向终端设备发送认证成功响应;终端设备在接收到服务器发送的认证成功响应后,基于认证成功响应,与服务器进行数据传输,也就是说,本发明中,终端设备与服务器建立websocket连接后,服务器会对终端设备进行认证,在认证成功后,才会进行数据传输,这样,在基于websocket连接进行数据传输前,对终端设备进行认证,可以降低跨站劫持风险,提升基于websocket进行通信的安全性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;

图2为本发明实施例方案涉及的硬件运行环境的服务器结构示意图;

图3为本发明第一实施例的数据传输方法的流程示意图;

图4为本发明第一实施例的数据包传输流程示意图;

图5为本发明第二实施例的数据传输方法的流程示意图;

图6为本发明第三实施例的生成并发送认证成功响应的流程示意图;

图7为本发明第三实施例的获取终端设备发送的数据的流程示意图;

图8为本发明第四实施例的数据传输方法的流程示意图;

图9为本发明应用于终端设备的数据传输设备一实施例的功能模块示意图;

图10为本发明应用于服务器的数据传输设备一实施例的功能模块示意图;

图11为本发明实施例方案涉及的数据传输系统结构示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。

终端设备可以是移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(pda)、平板电脑(pad)等用户设备(userequipment,ue)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(mobilestation,ms)等。设备可能被称为用户终端、便携式终端、台式终端等。

通常,终端设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的数据传输程序,所述数据传输程序配置为实现如下任一实施例所述的数据传输方法的步骤。

处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关数据传输方法操作,使得数据传输方法模型可以自主训练学习,提高效率和准确度。

存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的数据传输方法。

在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。

通信接口303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据传输程序,所述数据传输程序被处理器执行时实现如下文任一实施例所述的数据传输方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

本领域普通技术人员可以理解实现下文任一实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述数据传输程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如下述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

参照图2,图2为本发明实施例方案涉及的硬件运行环境的服务器结构示意图。该服务器用于实施下述实施例中提供的数据传输方法。

具体来讲,所述服务器包括中央处理单元(cpu)401、包括随机存取存储器(ram)402和只读存储器(rom)403的系统存储器404,以及连接系统存储器404和中央处理单元401的系统总线405。所述服务器还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)406,和用于存储操作系统413、应用程序414和其他程序模块415的大容量存储设备407。

所述基本输入/输出系统406包括有用于显示信息的显示器408和用于用户输入信息的诸如鼠标、键盘之类的输入设备409。其中所述显示器408和输入设备409都通过连接到系统总线405的输入输出控制器410连接到中央处理单元401。所述基本输入/输出系统406还可以包括输入输出控制器410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器410还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备407通过连接到系统总线405的大容量存储控制器连接到中央处理单元401。所述大容量存储设备407及其相关联的计算机可读介质为服务器提供非易失性存储。也就是说,所述大容量存储设备407可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。

上述的系统存储器404和大容量存储设备407可以统称为存储器。根据本申请的各种实施例,所述服务器还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器可以通过连接在所述系统总线405上的网络接口单元411连接到网络412,或者说,也可以使用网络接口单元411来连接到其他类型的网络或远程计算机系统。

基于上述硬件结构,提出本发明数据传输方法的实施例。

参照图3,图3为本发明数据传输方法的第一实施例的流程示意图,应用于终端设备,所述方法包括以下步骤:

步骤s11:与服务器建立websocket连接。

需要说明的是,本实施例中,终端设备包括但不限于移动电话、智能电话、笔记本电脑等设备。终端设备可以向服务器发送建立websocket连接请求,服务器在接收到终端设备发送的建立websocket连接请求后,向终端设备发送建立websocket连接响应,标识终端设备与服务器之间成功建立websocket连接。也就是说,终端设备与服务器之间经过一次握手即可建立websocket连接。应当理解的是,websocket是一种在单个tcp(transmissioncontrolprotocol,传输控制协议)连接上进行全双工通信的协议。

可选的,终端设备上可以安装有浏览器等应用程序的客户端,客户端可以向服务器发送建立websocket连接请求,以使终端设备与服务器之间建立websocket连接。

步骤s12:基于websocket连接,向服务器发送终端设备的第一标识信息。

终端设备在与服务器建立websocket连接后,会获取终端设备的第一标识信息,并基于websocket连接向服务器发送第一标识信息,以使服务器基于第一标识信息和服务器上存储的终端设备的第二标识信息,对终端设备进行认证。需要说明的是,此处的第一标识信息为存储在终端设备上的、终端设备的标识信息,第二标识信息为存储在服务器上的、终端设备的标识信息。也就是说,终端设备上存储有终端设备的标识信息,即第一标识信息;服务器上也存储有终端设备的标识信息,即第二标识信息,终端设备将第一标识信息发送给服务器后,服务器可以基于接收到的第一标识信息以及本端存储的第二标识信息,对终端设备进行认证,若第一标识信息与第二标识信息一致,则认证成功;若第一标识信息与第二标识信息不一致,则认证失败。

对于第一标识信息、第二标识信息,其可以是终端设备的ip(internetprotocol,网际互连协议)地址、mac(mediaaccesscontrol,媒体接入控制)地址等。或者,也可以是由终端设备和服务器预先协商的任意标识信息,也即,终端设备和服务器可以预先进行通信以设置终端设备的标识信息,并分别存储,例如,第一标识信息和第二标识信息可以是["auth","iamclient"]。

为了更好的理解,此处以一个示例进行说明,假设终端设备的标识信息为ip地址,终端设备和服务器上均存储有终端设备的ip地址,则服务器在接收到终端设备发送的ip地址后,判断接收到的终端设备的ip地址与服务器上存储的终端设备的ip地址是否一致,若一致,则认证成功,若不一致,则认证失败。

在一些实施例中,当终端设备与服务器之间在预设时间阈值内没有数据往来时,终端设备与服务器之间的websocket连接会被断开,为了避免终端设备与服务器之间的连接被断开,步骤s12包括:与服务器建立websocket连接后,在预设时间阈值内,基于websocket连接,向服务器发送第一标识信息。其中,预设时间阈值可以根据实际需要灵活设置,例如,可以设置为3秒,则终端设备与服务器建立websocket连接后,终端设备需要在3秒内向服务器发送第一标识信息,以保证终端设备与服务器之间的连接不被断开,若终端设备在3秒内未向服务器发送第一标识信息,则终端设备与服务器之间的websocket连接会被断开。

步骤s13:接收服务器发送的认证成功响应。

服务器在接收到终端设备发送的第一标识信息后,对终端设备进行认证,认证成功后,向终端设备发送认证成功响应。终端设备接收服务器发送的认证成功响应。

步骤s14:基于认证成功响应,与服务器进行数据传输。

终端设备在接收到服务器发送的认证成功响应后,表明服务器对终端设备认证成功,因此,终端设备可以基于websocket连接与服务器进行数据传输。也就是说,终端设备与服务器建立websocket连接后,在服务器对终端设备认证成功后,终端设备与服务器之间才能基于websocket连接进行通信。

在一些实施例中,步骤s14包括:基于认证成功响应,将待传输数据发送给服务器。也就是说,终端设备与服务器建立websocket连接,并且服务器对终端设备认证成功后,终端设备可以获取待传输数据,直接将待传输数据发送给服务器。

在一些实施例中,参见图4所示,步骤s14包括:

步骤s141:获取待传输数据。

需要说明的是,待传输数据可以是终端设备上任意需要传输给服务器的数据。

步骤s142:基于加密密钥,通过预设加密算法对待传输数据进行加密,以获得加密密文。

为了提升数据传输安全性,基于加密密钥,通过预设加密算法对待传输数据进行加密,以获得加密密文。加密密钥可以是从认证成功响应中获取的,也就是说,服务器发送的认证成功响应包括加密密钥。当然,加密密钥也可以是预先设置并分别存储在终端设备和服务器上的。

步骤s143:基于数据密文和第一标识信息生成数据包。

本实施例中,在得到数据密文后,基于数据密文和第一标识信息,生成数据包,也就是说,数据包中包括数据密文和第一标识信息。

步骤s144:基于websocket连接,将数据包发送给服务器。

也就是说,终端设备在向服务器发送待传输数据时,需要先通过加密密钥对待传输数据进行加密得到数据密文,然后,将数据密文和第一标识信息进行打包得到数据包,将数据包发送给服务器,以使服务器在接收到数据包后,先基于数据包中的第一标识信息、以及服务器上存储的第二标识信息,对终端设备进行认证,在认证成功后,基于加密密钥,通过预设解密算法(需要说明的是,预设解密算法与预设加密算法对应)对数据密文进行解密,以获得待传输数据。换言之,终端设备每次向服务器发送待传输数据时,都会携带标识信息,以使服务器知晓数据来源,避免恶意攻击。

在一些示例中,为了防止他人获取到标识信息,提升数据传输的安全性,数据包包括数据密文和标识信息密文,其中,标识信息密文基于加密密钥对第一标识信息进行加密得到,步骤s143包括:基于数据密文和标识信息密文生成数据包,以使服务器根据加密密钥对数据包中的标识信息密文进行解密得到第一标识信息,基于解密得到的第一标识信息、以及第二标识信息,对终端设备进行认证,在认证通过后,基于加密密钥,通过预设解密算法对数据密文进行解密得到待传输数据。

需要说明的是,本实施例中,预设加密算法可以是任意加密算法。为了进一步提升数据传输的安全性,预设加密算法可以是aes(advancedencryptionstandard,高级加密标准)加密算法,由于aes加密算法进行加密时,包括偏移量和加密密钥两个参数,因此,步骤s142包括:生成aes加密算法的偏移量;基于偏移量和加密密钥,通过aes加密算法对待传输数据进行加密,以获得数据密文。此时,步骤s143包括:基于数据密文、第一标识信息以及偏移量生成数据包,也就是说,数据包包括数据密文、第一标识信息以及偏移量。也就是说,每次需要传输数据时,都会生成aes加密算法的偏移量,基于加密密钥、偏移量,通过aes加密算法对待传输数据进行加密,以获得数据密文。为了使服务器能够解密数据密文,将偏移量、数据密文以及第一标识信息一起发送给服务器。其中,生成的偏移量的长度可以根据实际需要灵活设置,为了进一步提高安全性,可以随机偏移量

本实施例提供的数据传输方法,应用于终端设备,包括以下步骤:终端设备与服务器建立websocket连接;基于websocket连接,向服务器发送终端设备的第一标识信息,以使服务器基于第一标识信息、以及服务器上存储的终端设备的第二标识信息,对终端设备进行认证;接收服务器发送的认证成功响应;基于认证成功响应,与服务器进行数据传输,也就是说,终端设备与服务器基于websocket连接进行数据传输之前,需要先进行认证,从而降低了跨站劫持的风险,提升了基于websocket连接进行通信的安全性。

参照图5,图5为本发明数据传输方法的第二实施例的流程示意图,应用于服务器,所述方法包括以下步骤:

步骤s21:与终端设备建立websocket连接。

本实施例中,服务器在接收到终端设备发送的建立websocket连接请求后,可以向终端设备发送建立websocket连接响应,标识终端设备与服务器之间成功建立websocket连接。也就是说,终端设备与服务器之间经过一次握手即可建立websocket连接。

步骤s22:基于websocket连接,接收终端设备发送的终端设备的第一标识信息。

服务器与终端设备建立websocket连接后,基于websocket连接接收终端设备发送的该终端设备的第一标识信息。应当理解的是,第一标识信息为终端设备上存储的终端设备的标识信息。

步骤s23:基于第一标识信息和服务器上存储的终端设备的第二标识信息,对终端设备进行认证。

本实施例中,终端设备上存储有终端设备的标识信息,即第一标识信息,服务器中预先存储有终端设备的标识信息,即第二标识信息。服务器接收到终端设备发送的第一标识信息后,基于第一标识信息,以及本端存储的第二标识信息,对终端设备进行认证;若第一标识信息和第二标识信息一致,则认证成功;若第一标识信息和第二标识信息不一致,则认证失败。

步骤s24:在认证成功后,向终端设备发送认证成功响应。

服务器对终端设备认证成功后,向终端设备发送认证成功响应,以使终端设备基于认证成功响应与服务器进行数据传输。

本实施例提供的数据传输方法,应用于服务器,包括以下步骤:与终端设备建立websocket连接,基于websocket连接,接收终端设备发送的该终端设备的第一标识信息,基于第一标识信息和服务器上存储的终端设备的第二标识信息,对终端设备进行认证;在认证成功后,向终端设备发送认证成功响应,以使终端设备基于认证成功响应,与服务器进行数据传输,也就是说,服务器与终端设备进行数据传输之前,服务器需要对终端设备进行认证,从而降低了跨站劫持的风险,提升了通信的安全性。

基于第二实施例,提出本发明数据传输方法的第三实施例,应用于服务器,参见图6所示,步骤s24包括:

步骤s241:在认证成功后,生成加密密钥。

服务器在认证成功后,会生成加密密钥,也就是说,服务器每次与终端设备建立websocket连接并对终端设备认证成功后,会动态生成加密密钥。其中,加密密钥的位数可以根据实际需要灵活设置,例如,可以生成16位加密密钥、20位加密密钥等。其中,加密密钥可以是对称密钥,也可以是非对称密钥。

步骤s242:基于加密密钥生成认证成功响应。

服务器在生成加密密钥之后,基于加密密钥生成认证成功响应,其中,认证成功响应包括加密密钥。

步骤s243:将认证成功响应发送给终端设备。

服务器在生成认证成功响应后,基于websocket连接,将认证成功响应发送给终端设备,以使终端设备根据认证成功响应中的加密密钥,对待传输数据进行加密。

步骤s243之后,参见图7所示,数据传输方法还包括:

步骤s25:接收终端设备发送的数据包。

服务器接收终端设备基于websocket连接发送的数据包,其中,数据包包括第一标识信息和数据密文。

步骤s26:基于数据包中的第一标识信息和第二标识信息,对终端设备进行认证。

服务器在接收到数据包后,从数据包中解析出第一标识信息,并基于解析出的第一标识信息,以及第二标识信息,对终端设备进行认证,若第一标识信息和第二标识信息一致,则认证成功;若第一标识信息和第二标识信息不一致,则认证失败。

步骤s27:在认证成功后,基于加密密钥,通过预设解密算法对数据密文进行解密,以获得待传输数据。

由于数据密文是终端设备基于加密密钥,通过预设加密算法对待传输数据进行加密得到的,因此,服务器对终端设备认证成功后,基于加密密钥,通过预设解密算法对数据包中的数据密文进行解密得到待传输数据。需要说明的是,服务器上的预设解密算法与终端设备上的预设加密算法对应。

在一些实施例中,数据包包括数据密文和标识信息密文,标识信息密文由终端设备基于加密密钥对第一标识信息进行加密得到。此时,步骤s26包括:基于加密密钥对数据包中的标识信息密文进行解密得到第一标识信息,根据解密得到的第一标识信息,以及第二标识信息,对终端设备进行认证。

在一些实施例中,预设加密算法为aes加密算法,预设解密算法是aes解密算法,数据密文是终端设备基于加密密钥和偏移量,通过aes加密算法对待传输数据进行加密得到,数据包还包括偏移量,此时,步骤s27包括:在认证成功后,基于加密密钥以及数据包中的偏移量,通过aes解密算法,对数据包中的数据密文进行解密,以获得待传输数据。

本实施例提供的数据传输方法,应用于服务器,服务器向终端设备发送包括加密密钥的认证成功响应,使得终端设备基于加密密钥对待传输数据进行加密得到数据密文;然后,服务器接收终端设备发送的数据包,数据包包括数据密文和第一标识信息,服务器基于数据包中第一标识信息对终端设备进行认证,在认证成功后,基于加密密钥对数据密文进行解密得到待传输数据,也就是说,每次数据传输都使用了标识信息认证和数据加密双重认证标准,从而极大程度提高了基于websocket连接进行数据传输的安全性。

基于第二实施例,提出本发明数据传输方法的第四实施例,应用于服务器,步骤s21之后,参见图8所示,数据传输方法还包括:

步骤s31:判断与终端设备未存在数据传输的时间,是否大于预设时间阈值。

本实施例中,服务器与终端设备建立websocket连接之后,服务器会判断与终端设备未存在数据传输的时间,是否大于预设时间阈值。需要说明的是,此处的数据传输包括数据发送和数据接收。也就是说,服务器会判断与终端设备之间,既不存在数据发送,也不存在数据接收的时间,是否大于预设时间阈值;换言之,服务器会判断与终端设备之间,不存在数据往来的时间,是否大于预设时间阈值。对于预设时间阈值,其可以根据实际需要灵活设置,例如,可以设置为3秒、5秒等。为了更好的理解,这里以一个示例进行说明,假设预设时间阈值为3秒,在11点18分02秒,服务器向终端设备发送了一次数据,若在11点18分02秒-11点18分05秒期间,服务器既未接收到终端设备发送的数据,也未向终端设备发送数据,则表明服务器与终端设备未存在数据传输的时间,大于预设时间阈值;若在11点18分02秒-11点18分05秒期间,服务器接收到终端设备发送的数据,或服务器向终端设备发送数据,则表明服务器与终端设备未存在数据传输的时间,小于预设时间阈值。

步骤s32:若是,断开与终端设备的websocket连接。

也就是说,若终端设备与服务器之间,在预设时间阈值内没有数据往来,终端设备与服务器之间的websocket连接会被断开。

本实施例提供的数据传输方法,应用于服务器,服务器与终端设备之间预设时间阈值内不存在数据传输时,服务器会断开与终端设备之间的websocket连接,从而节约网络资源。

基于第二、三实施例,提出本发明数据传输方法的第五实施例,应用于服务器,步骤s23和步骤s26之后,数据传输方法还包括:在认证失败时,服务器断开与终端设备之间的websocket连接。

本实施例提供的数据传输方法,应用于服务器,服务器在对终端设备认证失败时,表明终端设备为非法终端设备,断开与终端设备之间的websocket连接,从而降低了跨站劫持的风险,提升了通信的安全性。

参照图9,图9为本发明数据传输设备的一实施例的结构示意图,应用于终端设备,数据传输设备包括:

连接模块101,用于与服务器建立websocket连接;

发送模块102,用于基于websocket连接,向服务器发送终端设备的第一标识信息,以使服务器基于第一标识信息和服务器上存储的终端设备的第二标识信息,对终端设备进行认证;

接收模块103,用于接收服务器发送的认证成功响应;

传输模块104,用于基于认证成功响应,与服务器进行数据传输。

参照图10,图10为本发明数据传输设备的第一实施例的结构示意图,应用于服务器,数据传输设备包括:

连接模块201,用于与终端设备建立websocket连接;

接收模块202,用于基于websocket连接,接收终端设备发送的终端设备的第一标识信息;

认证模块203,用于基于第一标识信息、以及服务器上存储的终端设备的第二标识信息,对终端设备进行认证;

发送模块204,用于在认证成功后,向终端设备发送认证成功响应,以使终端设备基于认证成功响应,与服务器进行数据传输。

需要说明的是,本实施例中,数据传输设备还可选的包括有对应的模块,以实现前述数据传输方法中服务器侧的步骤。

参照图11,图11为本发明实施例方案涉及的数据传输系统结构示意图。

如图11所示,数据传输系统包括:上述任一实施例的终端设备10和服务器20。

终端设备10与服务器20建立websocket连接;基于websocket连接,向服务器发送认证请求终端设备的第一标识信息;

服务器20在接收到第一标识信息后,基于第一标识信息、以及服务器20上存储的终端设备10的第二标识信息,对终端设备10进行认证,并在认证成功后,向终端设备10发送认证成功响应;

终端设备10在接收到认证成功响应后,基于认证成功响应,与服务器20进行数据传输。

需要说明的是,本实施例中,终端设备还可以实现前述数据传输方法中终端设备侧的步骤;服务器还可以实现前述数据传输方法中服务器侧的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1