密码同步方法和装置与流程

文档序号:12698812阅读:462来源:国知局
密码同步方法和装置与流程
本发明涉及网络
技术领域
,特别是涉及物联网
技术领域
,进一步涉及一种密码同步方法和装置。
背景技术
:随着无线网络的应用普及,各种设备可以通过无线网络接入点接入到网络,实现设备与服务器以及设备与设备之间的互动。对于未设置密码的无线网络接入点,设备可以直接接入无线网络接入点;但出于安全考虑,无线网络接入点通常都会设置密码,设备在接入无线网络接入点时需要提供正确的密码才可以连接到无线网络接入点进而访问网络。对于具有人工输入装置的设备,比如手机或计算机等,具有键盘或者触摸屏这样的人工输入装置,可以直接通过人工输入装置输入正确的密码进而连接到无线网络接入点。但如果设备不具有人工输入装置,或者如果设备所处的环境不适合人工直接操作,或者设备操作不方便,那么设备难以获取到密码,从而难以接入无线网络接入点。技术实现要素:基于此,有必要针对目前设备没有人工输入装置或者所处的环境不适合人工直接操作时难以获取到密码的问题,提供一种密码同步方法和装置。一种密码同步方法,所述方法包括:在监听模式下接收广播的数据包;接收到的数据包包括终端广播的数据包或者所述终端广播后再通过所述终端接入的无线网络接入点广播的数据包,所述终端广播的数据包的长度字段的数据是将预设字符序列和待接入无线网络接入点的密码按字节编码生成的;将接收到的数据包的长度字段的数据按照相应的数据包序列号排序;根据排序的数据和所述预设字符序列的数值特征确定长度字段附加值;根据所述长度字段附加值从接收到的数据包的长度字段的数据中还原出所述密码。一种密码同步装置,所述装置包括:接收模块,用于在监听模式下接收广播的数据包;接收到的数据包包括终端广播的数据包或者所述终端广播后再通过所述终端接入的无线网络接入点广播的数据包,所述终端广播的数据包的长度字段的数据是将预设字符序列和待接入无线网络接入点的密码按字节编码生成的;排序模块,用于将接收到的数据包的长度字段的数据按照相应的数据包序列号排序;长度字段附加值确定模块,用于根据排序的数据和所述预设字符序列的数值特征确定长度字段附加值;密码还原模块,用于根据所述长度字段附加值从接收到的数据包的长度字段的数据中还原出所述密码。上述密码同步方法和装置,预设字符序列和待接入无线网络接入点的密码按字节编码生成相应数据包的长度字段的数据后,数据包被广播,那么长度字段的数据会增加长度字段附加值。在监听模式下接收广播的数据包,将接收到的数据包的长度字段的数据按照相应的数据包序列号排序,这样排序后数据的顺序与终端发送数据的顺序是一致的,进而利用已知的预设字符序列的数值特征并结合排序的数据便可以确定长度字段附加值,进而可以还原出密码。这样当设备不具有人工输入装置或者设备所处的环境不适合人工直接操作时,也可以从终端同步到待接入无线网络接入点的密码。附图说明图1为一个实施例中密码同步系统的应用环境图;图2为一个实施例中用于实现密码同步方法的电子设备的结构示意图;图3为一个实施例中密码同步方法的流程示意图;图4为一个实施例中寻找可用信道的步骤的流程示意图;图5为一个实施例中根据长度字段附加值从接收到的数据包的长度字段的数据中还原出密码的步骤的流程示意图;图6为一个实施例中根据排序的数据和预设字符序列的数值特征确定长度字段附加值的步骤的流程示意图;图7为一个实施例中密码同步装置的结构框图;图8为另一个实施例中密码同步装置的结构框图;图9为一个实施例中密码同步装置的密码还原模块的结构框图;图10为一个实施例中长度字段附加值确定模块的结构框图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,在一个实施例中,提供了一种密码同步系统,包括终端102、无线网络接入点104和电子设备106。终端102包括手机、平板电脑、个人数字助理、电子书阅读器、POS终端、车载电脑、膝上型便携计算机和台式计算机等中的至少一种,终端102具有用于接入无线网络的无线网络模块。无线网络接入点104俗称“热点”,主要有路由交换接入一体设备和纯接入点设备,其中路由交换接入一体设备执行接入和路由工作,纯接入设备只负责接入无线网络,纯接入设备通常作为无线网络扩展使用。如图2所示,在一个实施例中,提供了一种电子设备106,包括通过系统总线连接的处理器、非易失性存储介质、内存储器以及无线网络模块。其中处理器具有计算功能和控制终端102工作的功能,该处理器被配置为执行一种密码同步方法。非易失性存储介质包括磁存储介质、光存储介质和闪存式存储介质中的至少一种,非易失性存储介质存储有密码同步装置,该密码同步装置用于实现一种密码同步方法。无线网络模块用于连接到无线网络。电子设备106比如智能空气净化器,摄像头以及智能音响等。发明人发现,在通信协议和加密算法不变的情况下,终端102发送的长度字段的数据为L的数据包进行协议封装和加密后进行广播,如果没有被分割,电子设备106接收到的数据包的长度字段的数据,会在原本的数值的基础上加上一个固定的数值,这个增加的固定的数值可以称为长度字段附加值。比如假设终端102上的数据包的长度字段的原本的数据为L,经过终端102广播后长度字段的数据变为L+a,再经过无线网络接入点104的转发进行广播后,长度字段的数据变为L+a+b,设长度字段附加值为C=a+b。那么如果终端102将密码编码为数据包的长度字段的数据L进行广播后,电子设备106求得C,就能够还原出密码L。如图3所示,在一个实施例中,提供了一种密码同步方法,本实施例以该方法应用于上述图1和图2所示的电子设备106来举例说明。该方法具体包括如下步骤:步骤302,在监听模式下接收广播的数据包;接收到的数据包包括终端广播的数据包或者终端广播后再通过终端接入的无线网络接入点广播的数据包,终端广播的数据包的长度字段的数据是将预设字符序列和待接入无线网络接入点的密码按字节编码生成的。具体地,监听模式也可以称为混杂模式,是指一台机器能够接收所有经过该机器的数据流,而不论数据流的目的地址是否指向该机器本身。电子设备可以直接监听终端所广播的数据包,也可以监听终端广播后经过无线网络接入点的转发而再次进行广播的数据包。数据包被广播时会被进行协议封装和加密,直接广播的数据包和经过无线网络接入点广播的数据包的长度字段附加值是不同的。不同的终端采用的无线传输协议不同,有些终端会采用较高级版本的无线传输协议(如MIMO传输协议,Multiple-InputMultiple-Output,多入多出传输协议),这种情况下终端广播的数据包如果再经过无线网络接入点,会被无线网络接入点采用低级版本的无线传输协议进行广播。这样即使终端采用较高级版本无线传输协议广播数据包,采用低级版本协议的电子设备也能够识别出,可尽可能避免由于无线传输协议版本不同而导致的密码同步失败,兼容性更强。预设字符序列是已知的,包括至少一个字符。预设字符序列中的各个字符 均可以转换成整数值,比如预设字符序列可取ASCII(AmericanStandardCodeforInformationInterchange,美国标准信息交换代码)中的任意字符。密码可取无线网络接入点所支持的任意字符。将预设字符序列和待接入无线网络接入点的密码按字节编码生成长度字段的数据,预设字符序列中的每个字符为一个字节,密码中的一个字符为一个字节,按字节编码即以字节为单位进行编码,编码生成的每个数据包的长度字段的数据就是一个字符的数值。长度字段是生成数据包所采用的协议定义的一种字段,长度字段的数据表示相应数据包所携带的需传输的数据的长度。如果字符是0到9的整数则编码后为本身,如果是ASCII中其它字符就转换成相应的整数的ASCII码。编码时可采用无线网络接入点支持的各种网络协议,比如UDP(用户数据报协议)或者TCP(TransmissionControlProtocol,传输控制协议)。待接入无线网络接入点可以是终端所接入的无线网络接入点,也可以是其它无线网络接入点。在一个实施例中,可将预设字符序列和待接入无线网络接入点的密码按字节依次编码,具体先将预设字符序列进行编码再将密码进行编码,这是考虑到预设字符序列的长度是已知的,而密码的长度是未知的,依次编码方便定位预设字符序列求得长度字段附加值。在一个实施例中,预设字符序列包括连续且相同的多个字符和不相同的多种字符中的至少一种。其中连续且相同的多个字符比如“111”或者“aaa”等,不相同的多种字符比如“1,8”或者“0,1,q”等,连续且相同的多个字符和不相同的多种字符的组合比如“111a”或者“aaq”。预设字符序列还可以包括字符0,其中连续且相同的多个字符和字符0的组合比如“000”,不相同的多种字符和字符0的组合比如“0q0”。步骤304,将接收到的数据包的长度字段的数据按照相应的数据包序列号排序。具体地,电子设备接收到系列的数据包后,可按照数据包序列号(SequenceNumber),将相应数据包的长度字段的数据逐个顺序地缓存到缓存区中,这样缓存区中的数据就是经过排序的数据。步骤306,根据排序的数据和预设字符序列的数值特征确定长度字段附加值。具体地,预设字符序列的数值特征是指反映预设字符序列的数值特性的数据。预设字符序列的数值特征可以包括预设字符序列中字符的数值,假设缓存区中第一个数据对应的预设字符序列的第一个字符,那么将缓存区中第一个数据减去预设字符序列的第一个字符的数值便可求得长度字段附加值。步骤308,根据长度字段附加值从接收到的数据包的长度字段的数据中还原出密码。具体地,在确定了长度字段附加值后,由于预设字符序列的长度是已知的,便可从排序的数据中定位到密码对应的数据,可将密码对应的数据均减去长度字段附加值,以还原出密码。还原出密码后,可搜索无线网络接入点的SSID(ServiceSetIdentifier,服务集标识),从而接入无线网络接入点。若搜索到多个SSID,则可以分别尝试连接每个搜索到的SSID。上述密码同步方法,预设字符序列和待接入无线网络接入点的密码按字节编码生成相应数据包的长度字段的数据后,数据包被广播,那么长度字段的数据会增加长度字段附加值。在监听模式下接收广播的数据包,将接收到的数据包的长度字段的数据按照相应的数据包序列号排序,这样排序后数据的顺序与终端发送数据的顺序是一致的,进而利用已知的预设字符序列的数值特征并结合排序的数据便可以确定长度字段附加值,进而可以还原出密码。这样当设备不具有人工输入装置或者设备所处的环境不适合人工直接操作时,也可以从终端同步到待接入无线网络接入点的密码。在一个实施例中,终端广播的数据包的长度字段的数据是将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成的,数据发送缓存区的缓存数据包括预设字符序列和密码。具体地,缓存索引一般是以1为步长递增的,当然也可以按照其它步长递增。数据发送缓存区中缓存有缓存数据,缓存数据包括预设字符序列和密码。数据发送缓存区中的缓存数据按照字节设有相应的缓存索引。这样每1字节的缓存数据需要2个数据包来发送,每个数据包传输1个字节的缓存数据或者1 个字节的缓存索引。将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码,具体是从数据发送缓存区的起始位置开始,按照先编码缓存索引后编码该缓存索引对应的一字节的缓存数据的顺序依次进行编码。编码的顺序与终端发送数据包的顺序是一致的。为了方便描述,这里将缓存索引编码生成了长度字段的数据的相应数据包称为缓存索引包,将缓存数据编码生成了长度字段的数据的相应数据包称为缓存数据包。交替地编码,使得生成的数据包按照数据包序列号排序后,缓存索引包和缓存数据包是交替的。若一个数据包是缓存索引包,其前一个或者后一个数据包就是缓存数据包,而每间隔一个数据包又是缓存索引包。若一个数据包是缓存数据包,其前一个或者后一个数据包就是缓存索引包,而每间隔一个数据包又是缓存数据包。缓存索引的数值变化趋势是递增的,相应的电子设备接收到的缓存索引包的长度字段的数据的数值变化趋势也是递增的。在一个实施例中,数据发送缓存区的缓存数据依次包括头数据和需传输的数据;头数据包括协议版本标识、数据长度信息以及预设字符序列,头数据的数据长度固定;需传输的数据包括密码和待接入无线网络接入点的识别标识;将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成数据包的长度字段的数据是循环进行的。具体地,头数据是数据发送缓存区中排在头部的缓存数据,主要包括预设字符序列,还包括协议版本标识和数据长度信息。头数据的位置和数据长度固定固定,方便计算长度字段附加值。在一个实施例中,头数据按次序包括协议版本标识、数据长度信息以及预设字符序列。头数据的数据长度固定,协议版本标识的数据长度以及数据长度信息的数据长度也是固定的。头数据之后是需传输的数据,需传输的数据是指需要传输给电子设备的数据内容,主要包括密码和待接入无线网络接入点的识别标识,比如SSID或BSSID(基本服务集标识),还可以包括IP地址或者端口号等其它接入无线网络接入点的信息。将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成数据包的长度字段的数据是循环进行的,是指将数据发送缓存区的缓存数据依次编码之后,会重新回到头数据循环进行编码。这是考虑到存在丢包的情况,在信道不合适时更容易发生丢包的情况,循环进行编码可以保证电子设备可以接收到全部的数据包从而保证还原出密码。循环无需无限循环,可在循环预设循环次数后停止,或者可根据用户操作停止。如图4所示,在一个实施例中,步骤306之前还包括寻找可用信道的步骤,具体包括如下步骤:步骤402,在当前信道下,统计预设时间段内在排序的数据中具有每间隔一个数据递增的数值变化趋势的数据数量。具体地,信道也可称为频段,在无线通信时通信的双方应当在相同或者相近的信道上,信道差别越远通信质量越差,比如若双方一个在信道1另一个在信道6,则双方基本无法正常通信。当前信道是电子设备当前所处的信道,可以是默认的信道或者之前切换到的信道。预设时间段是电子设备在寻找可用信道时在一个信道上停留的时间段,比如200毫秒。排序的数据中每个数据对应唯一的数据包,在排序的数据中每间隔一个数据递增的数值变化趋势,与缓存索引递增的数值变化趋势是一致的。统计的数据数量可以是具有每间隔一个数据递增的数值变化趋势的一段数据中这种数值变化趋势对应的数据的数量。举例说明,假设在排序的数据中统计到一段数据依次为X,Y1,X+1,Y2,X+2,Y3,X+3,Y4,X+4,其中X,X+1,X+2,X+3以及X+4这5个数据均为整数且依次递增1,统计的数据数量就是5。步骤404,若统计的数据数量大于等于预设数量,则锁定当前信道。具体地,预设数量可以与预设时间段匹配,预设时间段长相应的预设数量也可以相应增大。锁定当前信道是指停止寻找可用信道,后续将使用锁定的信道进行通信。比如若统计的数据数量为5,且预设数量为5,则可锁定当前信道。步骤406,若未统计到数据数量或者统计的数据数量小于预设数量或者未接 收到广播的数据包,则按预设信道顺序切换信道。具体地,若未统计到数据数量,或者统计的数据数量小于预设数量,可能是由于丢包情况比较严重;若未接收到广播的数据包,可能信道与广播数据包的一端的信道相差太大。总之这三种情况下当前信道不可用,需要切换信道后继续返回上述步骤402寻找可用信道。其中预设信道顺序前三位可以设置为信道1、信道6和信道11三种信道的组合,由于这三种信道为最常用信道,可以提高寻找可用信道的效率。本实施例中,由于缓存索引具有递增的数值变化趋势,那么缓存索引都加上长度字段附加值后仍然具有相同的数值变化趋势,这种特性可以帮助判断当前信道的通信质量,如果通信质量差就切换信道从而寻找到可用信道,提高通信质量。在一个实施例中,步骤306包括:在排序的数据中,查找满足预设条件的每间隔一个数据构成的数据序列,预设条件包括查找到的数据序列的数值变化趋势与预设字符序列的连续多个字符的数值变化趋势一致;根据查找到的数据序列中的数据与相应的连续多个字符的数值确定长度字段附加值。具体地,缓存数据与缓存索引是对应的,随着缓存索引的递增,缓存数据中的预设字符序列本身也具有数值变化趋势。具体地,查找到的数据序列的数值变化趋势与预设字符序列全部或部分的连续多个字符的数值变化趋势一致,此时查找到的数据序列与预设字符序列是一一对应的。数据序列中每个数据减去连续多个字符中相应字符的数值等于长度字段附加值。连续多个字符中多个的数量视情况设定,比如可以设置成连续5个,也可以设置为与预设字符序列的字符数量相等。举例说明,假设终端的数据发送缓存区中的缓存数据依次包括:xx0000qqco,BSSID字段,密码字段,IP地址字段,端口号字段。其中xx0000qqco是头数据,头数据的前两位是可变的,具体头数据第一位表示协议版本号,第二位表示数据长度信息。头数据前两位之后的0000qqco为预设字符序列,位置和长度均是固定的。数据发送缓存区和缓存数据的对应关系如下表一所示。表一仅示出了头数据的缓存数据,其它字段的缓存数据省略。表一:缓存索引:0123456789…缓存数据:000000qqc0…电子设备接收到广播的数据包后,将接收到的数据包的长度字段的数据按照相应的数据包序列号排序,得到如表二所示的排序的数据。表二:参照表二,C为长度字段附加值。在排序的数据中,对应头数据,缓存索引包的长度字段的数据从C逐次递增1一直到C+9。在排序的数据中,对应预设字符序列0000qqco,缓存数据包的长度字段的数据依次为C、C、C、C、C+113、C+113、C+99以及C+111。在排序的数据中若能查找到每间隔一个数据构成的数据序列C、C、C、C、C+113、C+113、C+99以及C+111,数值变化趋势为连续4个数据(假设是C)相同,之后的两个数据是在C上增加113,然后是C+99以及C+111,那么这个C就可以直接确定为长度字段附加值。本实施例中,通过在排序的数据中查找每间隔一个数据构成的具有与预设字符序列的连续多个字符的数值变化趋势一致的数值变化趋势的数据序列,来匹配预设字符序列和排序的数据中的对应关系,从而求得长度字段附加值,可靠性更高。如图5所示,在一个实施例中,缓存索引和缓存数据在被按字节编码前分别被线性映射为不同取值范围的数值;步骤308具体包括如下步骤:步骤502,根据长度字段附加值从接收到的数据包的长度字段的数据中还原出编码的数据。具体地,终端在将预设字符序列和待接入无线网络接入点的密码按字节编码前,先对缓存索引和缓存数据进行线性映射,使得映射后的缓存索引和映射后的缓存数据处于不同的取值范围。不同的取值范围不相交。线性映射是指将需要映射的数据增加过减少固定的值来进行映射。比如将缓存索引加上一个数值映射到[a,b],将缓存数据加上另一个数值映射到(b,+∞),a和b可以根据需要设置。可将接收到的数据包的长度字段的数据减去长度字段附加值还原出编码的数据。还原出编码的数据所依据的数据包可以是在确定长度字段附加值之后新接收到的数据包。步骤504,根据还原出的编码的数据所属的取值范围区分相应的编码的数据被映射前是缓存索引还是缓存数据。步骤506,获取编码的数据被映射前的数据,并按照区分的缓存索引和缓存数据填入数据接收缓存区,获得密码。其中,缓存索引和缓存数据在编码前经过线性映射,那么编码的数据就应当是经过线性映射的缓存索引或者缓存数据。在一个实施例中个,电子设备接收到一个数据包后提取长度字段的数据D1,若根据取值范围判断数据D1被映射前为缓存索引,则按照数据包序列号取下一个数据包的长度字段的数据D2。若根据取值范围判断数据D2被映射前为缓存数据,则将数据D1被映射前的数据作为缓存索引、并将数据D2被映射前的数据作为缓存数据对应地填入数据接收缓存区的指定位置。若根据取值范围判断数据D2被映射前不是缓存数据,则丢弃数据D1和数据D2。进一步地,若根据取值范围判断数据D1被映射前为缓存数据,则按照数据包序列号取前一个数据包的长度字段的数据D3,若根据取值范围判断数据D3被映射前为缓存索引,则将数据D3被映射前的数据作为缓存索引、并将数据D1被映射前的数据作为缓存数据对应地填入数据接收缓存区的指定位置。若根据取值范围判断数据D3被映射前不是缓存索引,则丢弃数据D1和数据D2。电子设备在数据接收缓存区中还原出终端数据发送缓存区中的数据,从而可以得到密码,还可以得到其它需传输的数据。在一个实施例中,电子设备在获取到协议版本标识的缓存索引对应的数据后,可确定协议版本,从而采用相应的协议版本来处理缓存数据。在一个实施例中,电子设备在获取到数据长度信息的缓存索引对应的数据后,可结合在数据发送缓存区中统计的数据判断数据接收缓存区中的数据是否收齐,收齐后可结束流程。本实施例中,终端在将缓存索引和缓存数据按字节编码前分别线性映射为不同取值范围的数值,那么电子设备在接收到之后就可以快速、准确地区分出缓存索引和缓存数据,从而可以提高还原出密码的效率。如图6所示,在一个实施例中,预设字符序列中至少一个字符为0;步骤306具体包括如下步骤:步骤602,依次从排序的数据中取出一个数据作为减数与排序的数据中其它数据求取数值差。具体地,可按照预设的顺序遍历排序的数据,每次取出一个数据A,再遍历排序的数据中除数据A之外的数据B,求取数值差B-A。其中预设的顺序可以是从排序的数据的第一个数据到最后一个数据,再遍历排序的数据中除数据A 之外的数据B时可仅取排序的数据中数据A之后的数据。如果经过线性映射,那么排序的数据还应进行逆线性映射后再开始执行步骤502。其中,若线性映射是加上一个固定值,那么逆线性映射就是减去这个固定值;若线性映射是减去一个固定值,那么逆线性映射就是加上这个固定值。步骤604,统计数值差等于预设字符序列其中一个字符的数值的次数。步骤606,若统计的次数超过预定义次数,则将取出的数据确定为长度字段附加值。具体地,假设A=C+M1,B=C+M2,其中C为长度字段附加值,M1为数据A对应的终端上的缓存数据,M2为数据B对应的终端上的缓存数据,那么B-A=M2-M1,反映的是相应的缓存数据的数值差。而如果B-A等于预设字符序列其中一个字符的数值,那么M1很可能就是0,如果统计的次数比较多,则可以断定M1就是0,那么数据A就等于长度字段附加值。其中预定义次数大于等于3,比如可取5。如果统计的次数未超过预定义次数,则另取数据并重新统计次数。举例说明,假设预设字符序列为0000qqco,那么统计的就是B-A等于0或者113(字符q的数值)或者99(字符c的数值)或者111(字符o的数值)的次数。本实施例中,当预设字符序列中至少一个字符为0时,考虑到0加上长度字段附加值等于长度字段附加值的特性,利用上述步骤602-步骤606可以高效地确定长度字段附加值,从而可以提高密码同步的效率。如图7所示,在一个实施例中,提供了一种密码同步装置700,包括接收模块710、排序模块720、长度字段附加值确定模块730和密码还原模块740。接收模块710,用于在监听模式下接收广播的数据包;接收到的数据包包括终端广播的数据包或者终端广播后再通过终端接入的无线网络接入点广播的数据包,终端广播的数据包的长度字段的数据是将预设字符序列和待接入无线网络接入点的密码按字节编码生成的。具体地,监听模式也可以称为混杂模式,是指一台机器能够接收所有经过该机器的数据流,而不论数据流的目的地址是否指向该机器本身。接收模块710 可用于直接监听终端所广播的数据包,也可以监听终端广播后经过无线网络接入点的转发而再次进行广播的数据包。数据包被广播时会被进行协议封装和加密,直接广播的数据包和经过无线网络接入点广播的数据包的长度字段附加值是不同的。预设字符序列是已知的,包括至少一个字符。预设字符序列中的各个字符均可以转换成整数值,比如预设字符序列可取ASCII中的任意字符。密码可取无线网络接入点所支持的任意字符。将预设字符序列和待接入无线网络接入点的密码按字节编码生成长度字段的数据,预设字符序列中的每个字符为一个字节,密码中的一个字符为一个字节,按字节编码即以字节为单位进行编码,编码生成的每个数据包的长度字段的数据就是一个字符的数值。如果字符是0到9的整数则编码后为本身,如果是ASCII中其它字符就转换成相应的整数的ASCII码。编码时可采用无线网络接入点支持的各种网络协议,比如UDP或者TCP。在一个实施例中,终端将预设字符序列和待接入无线网络接入点的密码按字节依次编码,具体先将预设字符序列进行编码再将密码进行编码,这是考虑到预设字符序列的长度是已知的,而密码的长度是未知的,依次编码方便定位预设字符序列求得长度字段附加值。在一个实施例中,预设字符序列包括连续且相同的多个字符和不相同的多种字符中的至少一种。排序模块720,用于将接收到的数据包的长度字段的数据按照相应的数据包序列号排序。具体地,电子设备接收到系列的数据包后,排序模块720可用于按照数据包序列号,将相应数据包的长度字段的数据逐个顺序地缓存到缓存区中,这样缓存区中的数据就是经过排序的数据。长度字段附加值确定模块730,用于根据排序的数据和预设字符序列的数值特征确定长度字段附加值。具体地,预设字符序列的数值特征是指反映预设字符序列的数值特性的数据。预设字符序列的数值特征可以包括预设字符序列中字符的数值,假设缓存区中第一个数据对应的预设字符序列的第一个字符,那么长度字段附加值确定 模块730将缓存区中第一个数据减去预设字符序列的第一个字符的数值便可求得长度字段附加值。密码还原模块740,用于根据长度字段附加值从接收到的数据包的长度字段的数据中还原出密码。具体地,在确定了长度字段附加值后,由于预设字符序列的长度是已知的,密码还原模块740便可从排序的数据中定位到密码对应的数据,可将密码对应的数据均减去长度字段附加值,以还原出密码。还原出密码后,密码同步装置700还可以包括连接模块(图中未示出),用于搜索无线网络接入点的SSID,从而接入无线网络接入点。上述密码同步装置700,预设字符序列和待接入无线网络接入点的密码按字节编码生成相应数据包的长度字段的数据后,数据包被广播,那么长度字段的数据会增加长度字段附加值。在监听模式下接收广播的数据包,将接收到的数据包的长度字段的数据按照相应的数据包序列号排序,这样排序后数据的顺序与终端发送数据的顺序是一致的,进而利用已知的预设字符序列的数值特征并结合排序的数据便可以确定长度字段附加值,进而可以还原出密码。这样当设备不具有人工输入装置或者设备所处的环境不适合人工直接操作时,也可以从终端同步到待接入无线网络接入点的密码。在一个实施例中,终端广播的数据包的长度字段的数据是将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成的,数据发送缓存区的缓存数据包括预设字符序列和密码。具体地,缓存索引一般是以1为步长递增的,当然也可以按照其它步长递增。数据发送缓存区中缓存有缓存数据,缓存数据包括预设字符序列和密码。数据发送缓存区中的缓存数据按照字节设有相应的缓存索引。将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码,具体是从数据发送缓存区的起始位置开始,按照先编码缓存索引后编码该缓存索引对应的一字节的缓存数据的顺序依次进行编码。编码的顺序与终端发送数据包的顺序是一致的。为了方便描述,这里将缓存索引编码生成了长度字段的数据的相应数据包称为缓存索引包,将缓存数据编码生成了长度字段的数 据的相应数据包称为缓存数据包。交替地编码,使得生成的数据包按照数据包序列号排序后,缓存索引包和缓存数据包是交替的。若一个数据包是缓存索引包,其前一个或者后一个数据包就是缓存数据包,而每间隔一个数据包又是缓存索引包。若一个数据包是缓存数据包,其前一个或者后一个数据包就是缓存索引包,而每间隔一个数据包又是缓存数据包。缓存索引的数值变化趋势是递增的,相应的电子设备接收到的缓存索引包的长度字段的数据的数值变化趋势也是递增的。在一个实施例中,数据发送缓存区的缓存数据依次包括头数据和需传输的数据;头数据包括协议版本标识、数据长度信息以及预设字符序列,头数据的数据长度固定;需传输的数据包括密码和待接入无线网络接入点的识别标识;将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成数据包的长度字段的数据是循环进行的。具体地,头数据是数据发送缓存区中排在头部的缓存数据,主要包括预设字符序列,还包括协议版本标识和数据长度信息。头数据的位置和数据长度固定固定,方便计算长度字段附加值。在一个实施例中,头数据按次序包括协议版本标识、数据长度信息以及预设字符序列。头数据的数据长度固定,协议版本标识的数据长度以及数据长度信息的数据长度也是固定的。头数据之后是需传输的数据,需传输的数据是指需要传输给电子设备的数据内容,主要包括密码和待接入无线网络接入点的识别标识,比如SSID或BSSID,还可以包括IP地址或者端口号等其它接入无线网络接入点的信息。将数据发送缓存区的递增的缓存索引和相应的缓存数据交替地按字节编码而生成数据包的长度字段的数据是循环进行的,是指将数据发送缓存区的缓存数据依次编码之后,会重新回到头数据循环进行编码。这是考虑到存在丢包的情况,在信道不合适时更容易发生丢包的情况,循环进行编码可以保证电子设备可以接收到全部的数据包从而保证还原出密码。循环无需无限循环,可在循环预设循环次数后停止,或者可根据用户操作停止。如图8所示,在一个实施例中,密码同步装置700还包括:第一统计模块 750、信道锁定模块760和信道切换模块770。第一统计模块750,用于在当前信道下,统计预设时间段内在排序的数据中具有每间隔一个数据递增的数值变化趋势的数据数量。具体地,信道也可称为频段,在无线通信时通信的双方应当在相同或者相近的信道上,信道差别越远通信质量越差,比如若双方一个在信道1另一个在信道6,则双方基本无法正常通信。当前信道是电子设备当前所处的信道,可以是默认的信道或者之前切换到的信道。预设时间段是电子设备在寻找可用信道时在一个信道上停留的时间段,比如200毫秒。排序的数据中每个数据对应唯一的数据包,在排序的数据中每间隔一个数据递增的数值变化趋势,与缓存索引递增的数值变化趋势是一致的。统计的数据数量可以是具有每间隔一个数据递增的数值变化趋势的一段数据中这种数值变化趋势对应的数据的数量。信道锁定模块760,用于若统计的数据数量大于等于预设数量,则锁定当前信道。具体地,预设数量可以与预设时间段匹配,预设时间段长相应的预设数量也可以相应增大。锁定当前信道是指停止寻找可用信道,后续使用锁定的信道进行通信。信道切换模块770,用于若未统计到数据数量或者统计的数据数量小于预设数量或者未接收到广播的数据包,则按预设信道顺序切换信道。具体地,若未统计到数据数量,或者统计的数据数量小于预设数量,可能是由于丢包情况比较严重;若未接收到广播的数据包,可能信道与广播数据包的一端的信道相差太大。总之这三种情况下当前信道不可用,需要切换信道后继续返回上述步骤402寻找可用信道。其中预设信道顺序前三位可以设置为信道1、信道6和信道11三种信道的组合。本实施例中,由于缓存索引具有递增的数值变化趋势,那么缓存索引都加上长度字段附加值后仍然具有相同的数值变化趋势,这种特性可以帮助判断当前信道的通信质量,如果通信质量差就切换信道从而寻找到可用信道,提高通 信质量。在一个实施例中,长度字段附加值确定模块730具体用于在排序的数据中,查找满足预设条件的每间隔一个数据构成的数据序列,预设条件包括查找到的数据序列的数值变化趋势与预设字符序列的连续多个字符的数值变化趋势一致;根据查找到的数据序列中的数据与相应的连续多个字符的数值确定长度字段附加值。具体地,缓存数据与缓存索引是对应的,随着缓存索引的递增,缓存数据中的预设字符序列本身也具有数值变化趋势。具体地,查找到的数据序列的数值变化趋势与预设字符序列全部或部分的连续多个字符的数值变化趋势一致,此时查找到的数据序列与预设字符序列是一一对应的。数据序列中每个数据减去连续多个字符中相应字符的数值等于长度字段附加值。连续多个字符中多个的数量视情况设定,比如可以设置成连续5个,也可以设置为与预设字符序列的字符数量相等。本实施例中,通过在排序的数据中查找每间隔一个数据构成的具有与预设字符序列的连续多个字符的数值变化趋势一致的数值变化趋势的数据序列,来匹配预设字符序列和排序的数据中的对应关系,从而求得长度字段附加值,可靠性更高。在一个实施例中,缓存索引和缓存数据在被按字节编码前分别被线性映射为不同取值范围的数值;如图9所示,密码还原模块740包括:编码数据还原模块741、区分模块742和缓存区处理模块743。编码数据还原模块741,用于根据长度字段附加值从接收到的数据包的长度字段的数据中还原出编码的数据。具体地,终端在将预设字符序列和待接入无线网络接入点的密码按字节编码前,先对缓存索引和缓存数据进行线性映射,使得映射后的缓存索引和映射后的缓存数据处于不同的取值范围。不同的取值范围不相交。线性映射是指将需要映射的数据增加过减少固定的值来进行映射。比如将缓存索引加上一个数值映射到[a,b],将缓存数据加上另一个数值映射到(b,+∞),a和b可以根据需要设置。可将接收到的数据包的长度字段的数据减去长度字段附加值还原出编码 的数据。还原出编码的数据所依据的数据包可以是在确定长度字段附加值之后新接收到的数据包。区分模块742,用于根据还原出的编码的数据所属的取值范围区分相应的编码的数据被映射前是缓存索引还是缓存数据。缓存区处理模块743,用于获取编码的数据被映射前的数据,并按照区分的缓存索引和缓存数据填入数据接收缓存区,获得密码。其中,缓存索引和缓存数据在编码前经过线性映射,那么编码的数据就应当是经过线性映射的缓存索引或者缓存数据。在一个实施例中个,电子设备接收到一个数据包后提取长度字段的数据D1,区分模块742用于若根据取值范围判断数据D1被映射前为缓存索引,则按照数据包序列号取下一个数据包的长度字段的数据D2。若根据取值范围判断数据D2被映射前为缓存数据,则缓存区处理模块743用于将数据D1被映射前的数据作为缓存索引、并将数据D2被映射前的数据作为缓存数据对应地填入数据接收缓存区的指定位置。若根据取值范围判断数据D2被映射前不是缓存数据,则缓存区处理模块743丢弃数据D1和数据D2。进一步地,区分模块742用于若根据取值范围判断数据D1被映射前为缓存数据,则按照数据包序列号取前一个数据包的长度字段的数据D3,缓存区处理模块743用于若根据取值范围判断数据D3被映射前为缓存索引,则将数据D3被映射前的数据作为缓存索引、并将数据D1被映射前的数据作为缓存数据对应地填入数据接收缓存区的指定位置。缓存区处理模块743用于若根据取值范围判断数据D3被映射前不是缓存索引,则丢弃数据D1和数据D2。密码还原模块740通过数据接收缓存区中还原出终端数据发送缓存区中的数据,从而可以得到密码,还可以得到其它需传输的数据。在一个实施例中,缓存区处理模块743可用于在获取到协议版本标识的缓存索引对应的数据后,确定协议版本,从而采用相应的协议版本来处理缓存数据。在一个实施例中,缓存区处理模块743可用于在获取到数据长度信息的缓存索引对应的数据后,结合在数据发送缓存区中统计的数据判断数据接收缓存区中的数据是否收齐,收齐后可结束流程。本实施例中,终端在将缓存索引和缓存数据按字节编码前分别线性映射为不同取值范围的数值,那么电子设备在接收到之后就可以快速、准确地区分出缓存索引和缓存数据,从而可以提高还原出密码的效率。在一个实施例中,预设字符序列中至少一个字符为0;如图10所示,长度字段附加值确定模块730包括:数值差计算模块731、第二统计模块732和确定模块733。数值差计算模块731,用于依次从排序的数据中取出一个数据作为减数与排序的数据中其它数据求取数值差。具体地,数值差计算模块731可按照预设的顺序遍历排序的数据,每次取出一个数据A,再遍历排序的数据中除数据A之外的数据B,求取数值差B-A。其中预设的顺序可以是从排序的数据的第一个数据到最后一个数据,再遍历排序的数据中除数据A之外的数据B时数值差计算模块731可仅取排序的数据中数据A之后的数据。如果经过线性映射,那么数值差计算模块731还应将排序的数据进行逆线性映射后再依次从排序的数据中取出一个数据作为减数与排序的数据中其它数据求取数值差。第二统计模块732,用于统计数值差等于预设字符序列其中一个字符的数值的次数。确定模块733,用于若统计的次数超过预定义次数,则将取出的数据确定为长度字段附加值。本实施例中,当预设字符序列中至少一个字符为0时,考虑到0加上长度字段附加值等于长度字段附加值的特性,可以高效地确定长度字段附加值,从而可以提高密码同步的效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等非易失性存储介质,或随机存储记忆体(RandomAccessMemory,RAM) 等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1