掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法

文献发布时间:2023-06-19 10:00:31


一种数据传输方法

技术领域

本发明涉及信息安全技术领域,具体而言,涉及一种数据传输方法。

背景技术

随着科技水平发展,智能终端的功能越加的强大,这极大地方便了人们的生活。但是,伴随而来的就是信息安全问题。当智能终端与服务器进行数据传输之时,用户的个人信息经常会遭到不法之徒的恶意攻击,若不对用户的个人信息进行加密传输,极容易导致隐私数据的泄露。

经过检索发现一些典型的现有技术,如申请号为201510564656.0的专利公开了一种安卓智能终端的数据传输方法、装置及系统,其提高了安卓智能终端传输网络数据的安全性。又如申请号为201510282505.6的专利公开了一种数据传输方法、智能终端及数据传输系统,其能够提高在提高业务信息推送的效率。又如申请号为201510697672.7的专利公开了一种多终端访问服务器的方法和智能终端,其能够减少服务器连接负载,避免网络堵塞,同时避免因带宽不足导致的传输速率降低。

由此可见,对于智能终端与服务器之间的数据传输,其实际应用中的亟待处理的实际问题(如更好地对用户个人信息进行加密,以防止隐私数据泄露等)还有很多未提出具体的解决方案。

发明内容

为了克服现有技术的不足提供了一种数据传输方法,本发明的具体技术方案如下:

一种数据传输方法,其包括以下步骤:

步骤1,服务器与智能终端建立通信连接,获取智能终端的身份信息并生成相应的公钥以及公钥加密算法,然后将公钥以及公钥加密算法反馈至智能终端;

步骤2,智能终端通过微信小程序读取智能终端的身份信息以及服务器中的数据信息列表,然后利用服务器反馈的公钥以及公钥加密算法对数据传输请求进行加密,并将加密后的数据传输请求传输至服务器;

步骤3,服务器接收并解密智能终端的数据传输请求,并对智能终端的身份信息进行验证,如果验证成功,则向智能终端传输数据,否则向智能终端反馈验证失败信息;

其中,所述数据传输请求包括智能终端的身份信息以及所要请求传输的数据信息。

可选的,所述服务器包括通信模块、存储模块、解密模块、验证模块、控制模块以及密钥生成模块;

所述通信模块用于与智能终端建立通信连接;

所述存储模块用于存储数据以及用户身份信息白名单;

所述解密模块用于利用私钥以及私钥解密算法对加密后的数据传输请求进行解密,将解密后得到的智能终端的身份信息传输至验证模块中,以及将解密后得到的智能终端所要请求传输的数据信息传输至控制模块;

所述验证模块用于对智能终端的身份信息进行验证,判断智能终端的身份信息是否为存储模块中的用户身份信息白名单中的一个,并将判断结果反馈至控制模块;

所述控制模块用于对根据验证模块的判断结果以及智能终端所要请求传输的数据信息,决定是否将智能终端所要请求传输的数据传输至智能终端;

所述密钥生成模块将用户身份信息白名单中的用户微信账号通过混沌迭代算法以及RSA算法转化成相应的公钥、私钥、公钥加密算法以及私钥解密算法。

可选的,所述智能终端的身份信息为用户的微信账号,所述用户身份信息白名单包括已通过验证的用户微信账号。

可选的,在步骤1中,服务器获取智能终端的身份信息并生成相应的公钥以及公钥加密算法的具体方法为:

步骤1a,通信模块与智能终端建立通信连接,获取智能终端所登录的用户微信账号,并将用户微信账号反馈至验证模块;

步骤1b,验证模块对用户微信账号进行验证,判断用户微信账号是否为存储模块中的用户身份信息白名单中的一个,如果是,则将用户微信账号传输至密钥生成模块;

步骤1c,密钥生成模块根据ASCII字符表将用户微信账号转成十进制数字,并将十进制数字通过混沌迭代算法迭代N次得到密钥因子P

步骤1d,密钥生成模块将步骤1c得到的十进制数字通过混沌迭代算法迭代N+1次得到密钥因子Q

步骤1e,选择公钥e,使得1

本发明所取得的有益效果包括:通过公钥以及公钥加密算法对所述数据传输请求进行加密,可以更好地对用户个人信息进行加密,以防止隐私数据泄露等。而通过微信小程序向服务器发送数据传输请求以及接收服务器传输过来的数据,则可以方便用户获取服务器存储的数据信息。

附图说明

从以下结合附图的描述可以进一步理解本发明,将重点放在示出实施例的原理上。

图1是本发明实施例中一种数据传输方法的整体流程示意图一;

图2是本发明实施例中另一种数据传输方法的整体流程示意图。

具体实施方式

为了使得本发明的目的、技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统、方法和/或特征将变得显而易见。旨在所有此类附加的系统、方法、特征和优点都包括在本说明书内、包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或组件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

本发明为一种数据传输方法,根据附图所示讲述以下实施例:

实施例一:

一种数据传输方法,如图1所示,其包括以下步骤:

步骤1,服务器与智能终端建立通信连接,获取智能终端的身份信息并生成相应的公钥以及公钥加密算法,然后将公钥以及公钥加密算法反馈至智能终端;

步骤2,智能终端通过微信小程序读取智能终端的身份信息以及服务器中的数据信息列表,然后利用服务器反馈的公钥以及公钥加密算法对数据传输请求进行加密,并将加密后的数据传输请求传输至服务器;

步骤3,服务器接收并解密智能终端的数据传输请求,并对智能终端的身份信息进行验证,如果验证成功,则向智能终端传输数据,否则向智能终端反馈验证失败信息;

其中,所述数据传输请求包括智能终端的身份信息以及所要请求传输的数据信息。

智能终端首次与服务器建立通信连接时,智能终端将通过微信小程序读取其微信ID账号信息,然后将用户微信账号发送至服务器中。服务器对用户微信ID进行验证,判断其是否为身份信息白名单中的一个,如果是,则根据用户微信账号生成相应的公钥以及公钥加密算法,发送至智能终端的微信小程序之中,否则向将用户微信账号未通过验证信息反馈至微信小程序之中。用户身份信息白名单中预先存储有已经通过验证的用户微信账号,这些用户微信账号由服务器管理人员统一验证添加。

作为一种优选的技术方案,在微信小程序中包括根据加密模块,该加密模块用于根据公钥以及公钥加密算法对数据传输请求进行加密。该加密模块部分程序如下:

1.将wx_rsa.js文件复制到自己想放置的目录下,并在需要用到的js文件中引用如:var RSA=require('../../utils/wx_rsa.js');

2.在对应的触发事件下进行相应的加密动作:

var input_rsa=this.data.input;

var encrypt_rsa=new RSA.RSAKey();

encrypt_rsa=RSA.KEYUTIL.getKey(publicKey);

encStr=encrypt_rsa.encrypt(input_rsa)

encStr=RSA.hex2b64(encStr);

console.log("加密结果:"+encStr)

作为一种优选的技术方案,所述服务器包括通信模块、存储模块、解密模块、验证模块、控制模块以及密钥生成模块;

所述通信模块用于与智能终端建立通信连接;

所述存储模块用于存储数据以及用户身份信息白名单;

所述解密模块用于利用私钥以及私钥解密算法对加密后的数据传输请求进行解密,将解密后得到的智能终端的身份信息传输至验证模块中,以及将解密后得到的智能终端所要请求传输的数据信息传输至控制模块;

所述验证模块用于对智能终端的身份信息进行验证,判断智能终端的身份信息是否为存储模块中的用户身份信息白名单中的一个,并将判断结果反馈至控制模块;

所述控制模块用于对根据验证模块的判断结果以及智能终端所要请求传输的数据信息,决定是否将智能终端所要请求传输的数据传输至智能终端;

所述密钥生成模块将用户身份信息白名单中的用户微信账号通过混沌迭代算法以及RSA算法转化成相应的公钥、私钥、公钥加密算法以及私钥解密算法。

所述解密模块的部分程序如下:

进一步地,所述智能终端的身份信息为用户的微信账号或者智能终端的物理地址,优选为用户的微信账号。所述用户身份信息白名单包括已通过验证的用户微信账号。

在步骤1中,如图2所示,服务器获取智能终端的身份信息并生成相应的公钥以及公钥加密算法的具体方法为:

步骤1a,通信模块与智能终端建立通信连接,获取智能终端所登录的用户微信账号,并将用户微信账号反馈至验证模块;

步骤1b,验证模块对用户微信账号进行验证,判断用户微信账号是否为存储模块中的用户身份信息白名单中的一个,如果是,则将用户微信账号传输至密钥生成模块;

步骤1c,密钥生成模块根据ASCII字符表将用户微信账号转成十进制数字,并将十进制数字通过混沌迭代算法迭代N次得到密钥因子P

步骤1d,密钥生成模块将步骤1c得到的十进制数字通过混沌迭代算法迭代N+1次得到密钥因子Q

步骤1e,选择公钥e,使得1

实施例二:

一种数据传输方法,其包括以下步骤:

步骤1,服务器与智能终端建立通信连接,获取智能终端的身份信息并生成相应的公钥以及公钥加密算法,然后将公钥以及公钥加密算法反馈至智能终端;

步骤2,智能终端通过微信小程序读取智能终端的身份信息以及服务器中的数据信息列表,然后利用服务器反馈的公钥以及公钥加密算法对数据传输请求进行加密,并将加密后的数据传输请求传输至服务器;

步骤3,服务器接收并解密智能终端的数据传输请求,并对智能终端的身份信息进行验证,如果验证成功,则向智能终端传输数据,否则向智能终端反馈验证失败信息;

其中,所述数据传输请求包括智能终端的身份信息以及所要请求传输的数据信息。

智能终端首次与服务器建立通信连接时,智能终端将通过微信小程序读取其微信ID账号信息,然后将用户微信账号发送至服务器中。服务器对用户微信ID进行验证,判断其是否为身份信息白名单中的一个,如果是,则根据用户微信账号生成相应的公钥以及公钥加密算法,发送至智能终端的微信小程序之中,否则向将用户微信账号未通过验证信息反馈至微信小程序之中。用户身份信息白名单中预先存储有已经通过验证的用户微信账号,这些用户微信账号由服务器管理人员统一验证添加。

作为一种优选的技术方案,在微信小程序中包括根据加密模块,该加密模块用于根据公钥以及公钥加密算法对数据传输请求进行加密。该加密模块部分程序如下:

1.将wx_rsa.js文件复制到自己想放置的目录下,并在需要用到的js文件中引用如:var RSA=require('../../utils/wx_rsa.js');

2.在对应的触发事件下进行相应的加密动作:

var input_rsa=this.data.input;

var encrypt_rsa=new RSA.RSAKey();

encrypt_rsa=RSA.KEYUTIL.getKey(publicKey);

encStr=encrypt_rsa.encrypt(input_rsa)

encStr=RSA.hex2b64(encStr);

console.log("加密结果:"+encStr)

作为一种优选的技术方案,所述服务器包括通信模块、存储模块、解密模块、验证模块、控制模块以及密钥生成模块;

所述通信模块用于与智能终端建立通信连接;

所述存储模块用于存储数据以及用户身份信息白名单;

所述解密模块用于利用私钥以及私钥解密算法对加密后的数据传输请求进行解密,将解密后得到的智能终端的身份信息传输至验证模块中,以及将解密后得到的智能终端所要请求传输的数据信息传输至控制模块;

所述验证模块用于对智能终端的身份信息进行验证,判断智能终端的身份信息是否为存储模块中的用户身份信息白名单中的一个,并将判断结果反馈至控制模块;

所述控制模块用于对根据验证模块的判断结果以及智能终端所要请求传输的数据信息,决定是否将智能终端所要请求传输的数据传输至智能终端;

所述密钥生成模块将用户身份信息白名单中的用户微信账号通过混沌迭代算法以及RSA算法转化成相应的公钥、私钥、公钥加密算法以及私钥解密算法。

所述解密模块的部分程序如下:

进一步地,所述智能终端的身份信息为用户的微信账号或者智能终端的物理地址,优选为物理地址。所述用户身份信息白名单包括已通过验证的用户微信账号。

在步骤1中,服务器获取智能终端的身份信息并生成相应的公钥以及公钥加密算法的具体方法为:

步骤1a,通信模块与智能终端建立通信连接,获取智能终端所登录的用户微信账号,并将用户微信账号反馈至验证模块;

步骤1b,验证模块对用户微信账号进行验证,判断用户微信账号是否为存储模块中的用户身份信息白名单中的一个,如果是,则将用户微信账号传输至密钥生成模块;

步骤1c,密钥生成模块根据ASCII字符表将用户微信账号转成十进制数字,并将十进制数字通过混沌迭代算法迭代N次得到密钥因子P

步骤1d,密钥生成模块将步骤1c得到的十进制数字通过混沌迭代算法迭代N+1次得到密钥因子Q

步骤1e,选择公钥e,使得1

在步骤1c以及1d中,所述混沌迭代算法为

在步骤1e中,计算N=p*q,并通过欧几里得算法计算d,满足e*d=1MOD(p-1)*(q-1);

公开N,整数e作为E,记为公钥E=,保密p,q,d,N作为D,记为私钥D=

将公钥加密算法设为c=E(m)=m

实施例三:

一种数据传输方法,其包括以下步骤:

步骤1,服务器与智能终端建立通信连接,获取智能终端的身份信息并生成相应的公钥以及公钥加密算法,然后将公钥以及公钥加密算法反馈至智能终端;

步骤2,智能终端通过微信小程序读取智能终端的身份信息以及服务器中的数据信息列表,然后利用服务器反馈的公钥以及公钥加密算法对数据传输请求进行加密,并将加密后的数据传输请求传输至服务器;

步骤3,服务器接收并解密智能终端的数据传输请求,并对智能终端的身份信息进行验证,如果验证成功,则向智能终端传输数据,否则向智能终端反馈验证失败信息;

其中,所述数据传输请求包括智能终端的身份信息以及所要请求传输的数据信息。

所述智能终端的身份信息为用户的微信账号,所述用户身份信息白名单包括已通过验证的用户微信账号。由于用户的微信账号由6-20位字母、数字、下划线和减号组成,且必须以字母开头(不区分大小写),因此可以根据ASCII字符表将用户微信账号转换成相应的十进制数字。

在步骤1中,服务器获取智能终端的身份信息并生成相应的公钥以及公钥加密算法的具体方法为:

步骤1a,通信模块与智能终端建立通信连接,获取智能终端所登录的用户微信账号,并将用户微信账号反馈至验证模块;

步骤1b,验证模块对用户微信账号进行验证,判断用户微信账号是否为存储模块中的用户身份信息白名单中的一个,如果是,则将用户微信账号传输至密钥生成模块;

步骤1c,密钥生成模块根据ASCII字符表将用户微信账号转成十进制数字,并判断该十进制数字是否为60位十进制数字,如果不是,则在该十进制数字末尾添加一个或者多个数字1,使其成为60位十进制数字,并记为S,然后将S分为五段,分别记为x

步骤1d,密钥生成模块将x

步骤1e,密钥生成模块将x

步骤1f,密钥生成模块将x

步骤1g,判断e与(p-1)*(q-1)是否互为素数,并且1

步骤1h,判断e与(p-1)*(q-1)是否互为素数,并且1

步骤1i,计算N=p*q,并通过欧几里得算法计算d,满足e*d=1MOD(p-1)*(q-1),公开N,整数e作为E,记为公钥E=,保密p,q,d,N作为D,记为私钥D=

步骤1j,将公钥加密算法设为c=E(m)=m

其中,在步骤1d中,S等分为五段,即x

所述服务器中存储有数据信息列表。微信小程序读取服务器存储的数据信息列表,然后根据所述数据信息列表生成所要请求传输的数据信息。比如所述数据信息列表包含多个视频、音频、文件或者图片的序号列表,微信小程序通过读取所述数据信息列表中的视频、音频、文件或者图片的序号,作为所要请求传输的数据信息。服务器通过将与序号相对应的视频、音频、文件或者图片进行加密后,发送至智能终端。如此,可以进一步保护用户个人隐私数据信息,避免他人窃取甚至恶意利用。

而通过微信小程序向服务器发送数据传输请求以及接收服务器传输过来的数据,则可以方便用户获取服务器存储的数据信息。

所述服务器与智能终端通过无线网络,如3G、4G、5G或者WIFI等无线模块进行通信连接。

综上所述,本发明公开的一种数据传输方法,所产生的有益技术效果包括:通过公钥以及公钥加密算法对所述数据传输请求进行加密,可以更好地对用户个人信息进行加密,以防止隐私数据泄露等。而通过微信小程序向服务器发送数据传输请求以及接收服务器传输过来的数据,则可以方便用户获取服务器存储的数据信息。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法、系统和设备是示例,各种配置可以适当地省略、替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法和/或可以添加、省略和/或组合各种部件。而且,关于某些配置描述的特征可以以各种其他配置组合,如可以以类似的方式组合配置的不同方面和元素。此外,随着技术发展其中的元素可以更新,即许多元素是示例,并不限制本发明公开或权利要求的范围。

在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置,例如已经示出了众所周知的电路、过程、算法、结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本发明公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。

综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

相关技术
  • 一种北斗技术数据传输方法、气象数据传输方法和系统
  • 一种北斗技术数据传输方法、气象数据传输方法和系统
技术分类

06120112383861