建立连接的方法

申请号 CN201710613533.0 申请日 2017-07-25 公开(公告)号 CN107171813A 公开(公告)日 2017-09-15
申请人 环球智达科技(北京)有限公司; 发明人 刘月; 朱洪龙; 孙健; 刘斌; 付强;
摘要 本 发明 实施例 涉及一种建立连接的方法,第一终端提取发现消息的第一hash值并将其加密处理生成第一签名信息后将其和发现消息编码处理,生成字符串;第一终端向网内发送包括字符串的广播消息;第二终端接收广播消息,提取字符串进行解码处理,获取第二签名信息和发现消息;对第二签名信息解密得到第二hash值与第一hash值进行匹配处理,如匹配一致则提取第三hash值并加密处理生成第三签名信息;将第三签名信息编码处理得到响应信息发送到第一终端进行解码处理,得到第三签名信息利用私钥解密,得到第四hash值;第四hash值和第三hash值进行匹配;若匹配一致,则第一终端与第二终端建立连接。本方法能够自动发现局域网内的终端设备并建立连接以进行信息交互。
权利要求

1.一种建立连接的方法,其特征在于,所述方法包括:
第一终端提取发现消息的第一hash值;
利用加密算法生成私钥,将所述发现消息的第一hash值进行加密处理生成第一签名信息;
将所述第一签名信息和发现消息进行编码处理,生成字符串;
所述第一终端向网内发送广播消息,所述广播消息中包括字符串;
第二终端启动服务监听端口,接收所述广播消息,并提取所述广播消息中的字符串;
将所述字符串进行解码处理,获取第二签名信息和发现消息;
利用公钥对所述第二签名信息进行解密得到第二hash值;
将第二hash值与第一hash值进行匹配处理;
如第二hash值与第一hash值匹配一致,提取设备信息的第三hash值;
将所述第三hash值进行加密处理生成第三签名信息;
将所述第三签名信息进行编码处理,得到响应信息,将所述响应信息发送到第一终端;
所述第一终端对所述响应信息进行解码处理,得到第四签名信息;
将所述第四签名信息利用私钥进行解密,得到第四hash值;
将第四hash值和第三hash值进行匹配;
如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括,第二终端启动服务监听端口,接收所述广播消息具体为:
预先设定时间阈值,在时间阈值内第二终端启动服务监听端口,接收所述广播。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括,所述第一签名信息和发现消息进行编码处理,生成字符串具体为:
所述第一签名信息和发现消息编码处理,生成ASCII码字符串。
4.根据权利要求1所述的方法,其特征在于,所述设备信息包括第二终端终端码信息和第二终端端口信息。
5.根据权利要求1所述的方法,其特征在于,所述如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接具体为:
所述第一终端向第二终端发送建立连接请求
所述第二终端接收所述建立连接请求,并与第一终端建立连接。
6.根据权利要求1所述的方法,其特征在于,第一终端提取发现消息的第一hash值之后还包括:
利用加密算法生成密钥对,所述密钥对包括公钥和私钥;
所述加密算法采用互质关系、欧拉函数、欧拉定理和模反元素。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括,利用加密算法生成密钥对具体为:
随机选择第一质数和第二质数,所述第一质数和第二质数不相等;
将所述第一质数和第二质数相乘得到乘积数;
将所述乘积数代入欧拉函数进行计算,得到欧拉函数值;
随机选择第一整数,所述第一整数大于1且小于所述欧拉函数值,且所述第一整数与所述欧拉函数值互质;
计算第一整数与所述欧拉函数值的模反元素,得到模反元素值;
将所述乘积数和所述第一整数封装成公钥,将所述乘积数和所述模反元素值封装成私钥。

说明书全文

建立连接的方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种建立连接的方法。

背景技术

[0002] 现有技术中,智能家居的使用越来越频繁,然而现有技术不能很方便地将智能家居与手机或者平板电脑等建立连接,当手机进入一个装配有陌生的智能设备的环境中,只能通过用户的主动操作才能操控该智能设备,由于现有终端(比如电视/盒子)在局域网内没有提供被发现服务。导致无法实现局域网内终端与发现端的交互。并不能自发与该智能设备建立连接关系进行信息交互。

发明内容

[0003] 本发明的目的是提供一种能够自动发现局域网内的终端设备并建立连接以进行信息交互的方法。
[0004] 为解决现有技术存在的问题,本发明提供了一种建立连接的方法,所述方法包括:
[0005] 第一终端提取发现消息的第一hash值;
[0006] 利用加密算法生成私钥,将所述发现消息的第一hash值进行加密处理生成第一签名信息;
[0007] 将所述第一签名信息和发现消息进行编码处理,生成字符串;
[0008] 所述第一终端向网内发送广播消息,所述广播消息中包括字符串;
[0009] 第二终端启动服务监听端口,接收所述广播消息,并提取所述广播消息中的字符串;
[0010] 将所述字符串进行解码处理,获取第二签名信息和发现消息;
[0011] 利用公钥对签名信息进行解密得到第二hash值;
[0012] 将第二hash值与第一hash值进行匹配处理;
[0013] 如第二hash值与第一hash值匹配一致,提取设备信息的第三hash值;
[0014] 将所述第三hash值进行加密处理生成第三签名信息;
[0015] 将所述第三签名信息进行编码处理,得到响应信息,将所述响应信息发送到第一终端;
[0016] 所述第一终端对所述响应信息进行解码处理,得到第四签名信息;
[0017] 将所述第四签名信息利用私钥进行解密,得到第四hash值;
[0018] 第四hash值和第三hash值进行匹配;
[0019] 如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接。
[0020] 进一步地,所述方法还包括,第二终端启动服务监听端口,接收所述广播消息具体为:
[0021] 预先设定时间阈值,在时间阈值内第二终端启动服务监听端口,接收所述广播。
[0022] 进一步地,所述方法还包括,所述第一签名信息和发现消息进行编码处理,生成字符串具体为:
[0023] 所述第一签名信息和发现消息编码处理,生成ASCII码字符串。
[0024] 进一步地,所述设备信息包括第二终端终端码信息和第二终端端口信息。
[0025] 进一步地,所述如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接具体为:
[0026] 所述第一终端向第二终端发送建立连接请求
[0027] 所述第二终端接收所述建立连接请求,并与第一终端建立连接。
[0028] 进一步地,第一终端提取发现消息的第一hash值之后还包括:
[0029] 利用加密算法生成密钥对,所述密钥对包括公钥和私钥;
[0030] 所述加密算法采用互质关系、欧拉函数、欧拉定理和模反元素。
[0031] 进一步地,所述方法还包括,利用加密算法生成密钥对具体为:
[0032] 随机选择第一质数和第二质数,所述第一质数和第二质数不相等;
[0033] 将所述第一质数和第二质数相乘得到乘积数;
[0034] 将所述乘积数代入欧拉函数进行计算,得到欧拉函数值;
[0035] 随机选择第一整数,所述第一整数大于1且小于所述欧拉函数值,且所述第一整数与所述欧拉函数值互质;
[0036] 计算第一整数与所述欧拉函数值的模反元素,得到模反元素值;
[0037] 将所述乘积数和所述第一整数封装成公钥,将所述乘积数和所述模反元素值封装成私钥:
[0038] 本发明实施例提供的建立连接的方法能够自动发现局域网内的终端设备并建立连接以进行信息交互。附图说明
[0039] 图1为本发明实施例提供的建立连接的方法的流程图

具体实施方式

[0040] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0041] 本发明的目的是通过搜索终端发送发现消息来搜寻环境中的被搜索终端,搜索终端发送发现消息前先对发现消息进行加密操作,进而通过被搜索终端使用公钥/私钥对加密的发现消息解密来实现检测被搜索终端和搜索终端是否能够建立连接进而实现数据交互,同时被搜索终端通过向搜索终端发送加密的设备信息来达到验证搜索终端和被搜索终端是否能建立连接的目的。详细的来讲,即通过对发现消息提取第一hash值,再对第一hash值进行加密操作,随后将加密的第一hash值和发现消息转码后发送至被搜索终端,若被搜索终端可以接受该加密的第一hash值和发现消息,则进行解码和解密操作,被搜索终端获取到解密后的发现消息后,将自身的设备信息提取第二hash值并加密,随后将加密的第二hash值和设备消息转码后发送至搜索终端,搜索终端对其成功转码解密后,则二者可以建立连接进行数据交互。
[0042] 图1为本发明实施例提供的建立连接的方法的流程图,如图所示,所述方法包括:
[0043] S101:第一终端提取发现消息的第一hash值。
[0044] 第一终端即搜索终端,相对应的,本发明的第二终端为被搜索终端。第一终端发送的发现消息即搜索终端发现被搜索终端的存在的一个请求信息,当搜索终端需要对环境中的终端进行搜索发现时,先提取发现消息的hash值,进而才能进行后续的步骤。
[0045] S102:利用加密算法生成私钥,将所述发现消息的第一hash值进行加密处理生成第一签名信息。
[0046] 第一终端在向第二终端发送发现消息前,要先提取发现消息的第一hash值,发现消息为第二终端可以接受的消息格式,比如为MSG格式。
[0047] 第一终端使用RSA算法预先生成密钥对,密钥对包括公钥和私钥。第一终端利用私钥对上述第一hash值进行加密处理,生成第一签名信息。
[0048] 上述操作的意义在于,第一终端需要向第二终端或者其他终端发送发现消息,顾名思义,发现消息用于探知能够接受该发现消息的第二终端或者其他终端的存在,当第二终端接收到本发现消息且进行有效反馈时,则认为该第二终端可以和第一终端建立连接。而对发现消息进行加密处理可以达到验证第二终端是否符合第一终端建立连接的要求的效果。
[0049] 进一步地,第一终端提取发现消息的第一hash值之后还包括:
[0050] 利用加密算法生成密钥对,所述密钥对包括公钥和私钥;
[0051] 所述加密算法采用互质关系、欧拉函数、欧拉定理和模反元素。
[0052] 进一步地,所述方法还包括,利用加密算法生成密钥对具体为:
[0053] 随机选择第一质数和第二质数,所述第一质数和第二质数不相等;
[0054] 将所述第一质数和第二质数相乘得到乘积数;
[0055] 将所述乘积数代入欧拉函数进行计算,得到欧拉函数值;
[0056] 随机选择第一整数,所述第一整数大于1且小于所述欧拉函数值,且所述第一整数与所述欧拉函数值互质;
[0057] 计算第一整数与所述欧拉函数值的模反元素,得到模反元素值;
[0058] 将所述乘积数和所述第一整数封装成公钥,将所述乘积数和所述模反元素值封装成私钥。
[0059] 上述RSA是安全领域下的非对称加密算法,即使用公钥/私钥对MSG格式的第一hash值进行加密处理,再使用私钥/公钥进行解密得到第二hash值,与接收到的MSG的第一hash值进行匹配。
[0060] 加密/解密过程中使用到互质关系,欧拉函数,欧拉定律,模板元素等。
[0061] 其中密钥生成的步骤为:
[0062] 第一步,随机选择两个不相等的质数p,q。
[0063] 第二步,计算p和q的乘积n。
[0064] 第三步,计算n的欧拉函数φ(n)。
[0065] 第四步,随机选择一个整数e,条件是1
[0066] 第五步,计算e对于φ(n)的模反元素d。
[0067] 第六步,将n和e封装成公钥,n和d封装成私钥。
[0068] S103:将所述第一签名信息和发现消息进行编码处理,生成字符串。
[0069] 进一步地,所述方法还包括,所述第一签名信息和发现消息进行编码处理,生成字符串具体为:
[0070] 所述第一签名信息和发现消息编码处理,生成ASCII码字符串。
[0071] 第一终端得到发现消息和第一签名消息后,对该发现消息和第一签名信息进行数据编码操作转化为ASCII码格式的字符串。比如可以使用base64将非ASCII字符的数据转换为ASCII字符,以此保证传输数据的正确和安全。
[0072] S104:所述第一终端向网内发送广播消息,所述广播消息中包括字符串。
[0073] 第一终端对第一签名信息和发现消息编码处理完毕后,将第一签名信息和发现消息以广播消息的形式发送,广播消息则也是以字符串的形式存在。第一终端向UDP协议的广播地址发送该广播消息,而该UDP协议则是由局域网IP和子网掩码得出。
[0074] S105:第二终端启动服务监听端口,接收所述广播消息,并提取所述广播消息中的字符串。
[0075] 第一终端发送出广播消息后,第二终端启动相应的服务监听端口,该服务监听端口要避免使用已经使用的端口,比如避免使用第二终端上已注册的端口和已知的端口。第二终端启动的服务监听端口接收到上述的广播消息并从中提取所含有的字符串,提取完成后对字符串进行后续处理。
[0076] 进一步地,所述方法还包括,第二终端启动服务监听端口,接收所述广播消息具体为:
[0077] 预先设定时间阈值,在时间阈值内第二终端启动服务监听端口,接收所述广播。
[0078] 为了提高发现效率,第二终端启动服务监听端口接收广播消息这一操作,应当在一定时间内完成。因此预先设定一个时间阈值,若在该时间阈值内第二终端成功启动服务监听端口并接收了上述广播消息,则认为该项操作成功,否则认为该项操作失败。
[0079] S106:将所述字符串进行解码处理,获取第二签名信息和发现消息。
[0080] 第二终端提取到广播消息包括的字符串后,对该字符串进行解码处理,该解码处理操作也是基于base64来进行。解码完成后,第二终端获取到第二签名信息和发现消息,第二签名信息是相对于第一签名信息而言的,接收端接收到的信息。
[0081] S107:利用公钥对第二签名信息进行解密得到第二hash值。
[0082] S108:将第二hash值与第一hash值进行匹配处理。
[0083] 第二终端接收到第二签名信息后,利用第一终端的公钥对该第二签名信息进行解密操作得到第二hash值,并对得到的第二hash值和第一hash值进行匹配检测。若二者匹配一致则认为接收到的消息是第一终端发送的有效信息,否则则认为该消息无效,即本轮操作就此结束。
[0084] S109:如第二hash值与第一hash值匹配一致,提取设备信息的第三hash值。
[0085] 如果第二终端检测第二hash值和第一hash值匹配一致,则第二终端提取第二终端的设备信息,并对该设备信息进行提取操作获取该设备信息的第三hash值。
[0086] 进一步地,所述设备信息包括第二终端终端码信息和第二终端端口信息。
[0087] 上述第二终端的设备信息包括的是第二终端的终端码信息和第二终端的端口信息,发送第二终端的终端码信息和第二终端的端口信息的目的在于,向第一终端传递第二终端可以用于与第一终端进行连接的端口信息,同时确定第二终端的终端身份。
[0088] S110:将所述第三hash值进行加密处理生成第三签名信息。
[0089] 第二终端得到第三hash值后,对其利用第一终端的公钥进行加密处理,得到第三签名信息。使用公钥处理后得到的第三签名信息,应当使用第一终端的私钥进行解密处理。
[0090] S111:将所述第三签名信息进行编码处理,得到响应信息,将所述响应信息发送到第一终端。
[0091] 第二终端得到加密处理的第三签名信息后,对该第三签名信息和设备信息进行数据编码操作转化为ASCII码格式的字符串。比如可以使用base64将非ASCII字符的数据转换为ASCII字符,以此保证传输数据的正确和安全。编码完成后,将上述响应信息发送至第一终端进行后续操作。响应信息采用单播形式发送,其作用在于传递IP和服务监听端口。
[0092] S112:所述第一终端对所述响应信息进行解码处理,得到第四签名信息。
[0093] 第一终端接收到第二终端发送的响应信息后,基于base64对该响应信息进行解码处理,解码得到第四签名信息,第四签名信息对应于上述第三签名信息。
[0094] S113:将所述第四签名信息利用私钥进行解密,得到第四hash值。
[0095] S114:第四hash值和第三hash值进行匹配。
[0096] 第二终端对解码得到的第四签名信息利用第一终端的私钥进行解密,得到的是第四hash值,第四hash值对应的是第三hash值。得到第四hash值后,将第四hash值和第三hash值进行匹配性检测,检测二者是否一致。
[0097] S115:如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接。
[0098] 如果检测结果为第四hash值和第三hash值匹配一致,即意味着第二终端成功接收到了第一终端的设备信息,即第一终端与第二终端成功建立连接。
[0099] 进一步地,所述如果第四hash值和第三hash值匹配一致,则所述第一终端与第二终端建立连接具体为:
[0100] 所述第一终端向第二终端发送建立连接请求;
[0101] 所述第二终端接收所述建立连接请求,并与第一终端建立连接。
[0102] 当第一终端检测第四hash值和第三hash值匹配一致时,即意味这第一终端与第二终端建立连接这一行为可行。
[0103] 因此第一终端若要和第二终端建立连接,首先需要第一终端向第二终端发送建立连接的请求信息,当第二终端接收到该请求信息后,验证该请求信息安全有效,则同意与第一终端建立连接。
[0104] 本发明实施例提供的建立连接的方法能够自动发现局域网内的终端设备并建立连接以进行信息交互。
[0105] 专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0106] 结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0107] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈