发明内容
本发明的目的是提供一种提高联系人信息安全的方法,以解决当前采用密码屏障或移位制造假号码的伪装方法保护联系人信息时所存在的问题,从而使联系人信息更加安全,提高用户体验。
本发明的另一目的是提供一种提高联系人信息安全的移动终端,以解决当前采用密码屏障或移位制造假号码的伪装方法保护联系人信息时所存在的问题,从而使联系人信息更加安全,提高用户体验。
为实现上述目的,本发明提供了一种提高联系人信息安全的方法,包括以下步骤:
输入当前密码;
根据所述当前密码、加密算法以及每一联系人的电话号码计算每一联系人的电话号码在当前二维表中的位置信息;
根据所述位置信息从所述当前二维表中读取数据以生成当前电话号码。
与现有技术相比,本发明在进入联系人应用前,会输入当前密码,然后移动终端根据当前密码、加密算法以及每一联系人的电话号码计算该电话号码在当前二维表中的位置信息,最后根据计算得到的位置信息从当前二维表中读取数据来生成当前电话号码,而不会在当前密码错误时进行提示,从而无论输入的当前密码是否正确,移动终端都会得到一个当前电话号码,故,当移动终端(如手机)丢失或被盗时,移动终端的持有者在输入当前密码后,总会得到相应的当前电话号码,而持有者不能判断当前电话号码是否正确,从而也不能判断输入的当前密码是否正确,因此,持有者不能通过穷举法得到正确的密码,且无法判断哪个密码下得到的当前电话号码是正确的,同时,对于专业的密码破解人员,即使绕过密码输入的屏障,得到的也是一张由乱序数字组成的当前二维表,此外,与移位制造假号码的伪装方法相比,本发明在输入不同的当前密码时,得到的当前电话号码也是不同的,因此也不能通过穷举法找到密码以获取联系人信息,从而本发明在较大程度上提高了联系人的信息安全,更加可靠,用户体验较好。
较佳地,所述“输入当前密码”之前还包括:
设置保护密码;
根据所述保护密码、所述加密算法、所述联系人的电话号码及姓名信息对所述联系人的所述电话号码进行加密处理以生成所述当前二维表;
存储所述当前二维表。
较佳地,所述“根据所述保护密码、所述加密算法、所述联系人的电话号码及姓名信息对所述联系人的所述电话号码进行加密处理以生成所述当前二维表”具体包括:
根据所述保护密码、所述联系人的姓名信息依次取所述电话号码的每一号码位执行所述加密算法以得到一组输出值;
根据所述输出值将相应的所述号码位放置于一原始二维表中;
用随机数字填充所述原始二维表中没有放置所述号码位的位置以生成所述当前二维表。
较佳地,所述加密算法的输入变量包括输入密码、所述联系人的姓名信息以及所述电话号码的相关信息,所述加密算法的输出变量为所述电话号码在所述当前二维表中的位置信息,所述输入密码为所述保护密码或所述当前密码。
较佳地,所述“设置保护密码”之后还包括:设置校验信息,所述校验信息用于判断所述当前电话号码是否正确。
相应的,本发明还提供了一种提高联系人信息安全的移动终端,包括:
输入模块,用于输入当前密码;
计算模块,用于根据所述当前密码、加密算法以及每一联系人的电话号码计算每一联系人的电话号码在当前二维表中的位置信息;
读取模块,用于根据所述位置信息从所述当前二维表中读取数据以生成当前电话号码。
较佳地,所述提高联系人信息安全的移动终端还包括:
设置模块,用于设置保护密码和校验信息;
加密模块,用于根据所述保护密码、所述加密算法、所述联系人的电话号码及姓名信息对所述联系人的所述电话号码进行加密处理;
存储模块,用于存储所述当前二维表。
较佳地,所述加密模块包括:
计算单元,用于根据所述保护密码、所述联系人的姓名信息依次取所述电话号码的每一号码位执行所述加密算法以得到一组输出值;
存放单元,用于根据所述输出值将相应的所述号码位放置于一原始二维表中;
填充单元,用于用随机数字填充所述原始二维表中没有放置所述号码位的位置以生成所述当前二维表。
较佳地,所述加密算法的输入变量包括输入密码、所述联系人的姓名信息以及所述电话号码的相关信息,所述加密算法的输出变量为所述电话号码在所述当前二维表中的位置信息,所述输入密码为所述保护密码或所述当前密码。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
具体实施方式
现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。
请参考图1,描述了本发明提高联系人信息安全的方法一优选实施例的工作流程。如图1所示,包括以下步骤:
步骤S101,设置保护密码和校验信息。
其中保护密码和校验信息可由用户任意设置,如设置保护密码为1234,校验信息为hello word,通过校验信息,用户可以判断输入当前密码后得到的当前电话号码是否正确。
步骤S102,根据保护密码以及移动终端内存储的加密算法、联系人的姓名信息依次对每一联系人的电话号码进行加密处理以生成当前二维表。
其中对每一联系人的电话号码的具体加密过程为:依次取电话号码的每一号码位,然后根据该号码位、保护密码、加密算法以及联系人的姓名信息执行加密算法以得到一组输出值;根据这组输出值将相应的号码位放置于一空白的原始二维表中;用随机数字填充原始二维表中没有放置号码位的位置以得到一个包含有电话号码的当前二维表。其中,联系人的姓名信息具体为移动终端中姓名的字串对应的整数值,加密算法的输入变量包括输入密码、联系人的姓名信息、电话号码中每一号码位的偏移值以及该号码位的数值,加密算法的输出变量为电话号码中每一号码位在当前二维表中所处的位置(即行列值),此时输入密码为设置的保护密码。
需要注意的是,加密算法并不是唯一的,可以自由设计,只要加密算法中所包含的输入变量、输出变量满足以上要求即可,如:加密算法中对输入变量采用的数学模型可以为n次元方程、对数方程等任意数学模型,同时,加密等级也可以根据保护程度的需求而设计。本实施例中输入变量设定为输入密码、联系人的姓名信息、每一号码位的偏移值以及该号码位的数值,然而,在其他实施例中,还可以根据需求增加其他与联系人相关的信息作为输入变量,从而更多的限定输出变量,当然,也可以删除某一输入变量以减少对输出变量的限定。
如:加密算法为(X3+(Y+P)2+Z*1024)%34=R时,加密算法中的输入变量为X、Y、P、Z,输出变量为R。本实施例中设定X为输入密码的值,此时X即为保护密码的值(即1234);Y为当前的号码位的数值;P为当前的号码位在电话号码中的偏移值(如电话号码13640893857包括11个号码位,设定第一个号码位的偏移值为1,第二个号码位的偏移值为2,依此类推,当然,对于每一号码位在电话号码中所处位置的偏移值的计数规则还可以由用户自由设定,如设定11个号码位的偏移值为等差数列等);Z为姓名的字串对应的整数值(汉字中每一字符在Unicode编码中都对应着一特定的数值,在计算机、移动终端等终端设备内部处理时也会将汉字识别为特定的数值,故每一个姓名都对应有一固定的数值);R为输出结果、表示当前的号码位在原始二维表中所处的位置(行列值),其中R为一个两位数,当R小于10时用0X表示,如当R为12时,表示当前号码位在原始二维表中的位置为第2行、第3列(从0开始计数);此外,加密算法中的34为取模运算的模值,该模值是由当前所采用的原始二维表来决定的,如当模值为34时,表示存储电话号码的原始二维表为4*4(4行4列)的,当采用的原始二维表为5*5时,模值取为45,依次类推。
下面以保护密码为1234、加密算法为(X3+(Y+P)2+Z*1024)%34=R时,对联系人张三的电话号码13640893857进行加密处理为例说明具体的加密过程。
具体过程为:分别对张三电话号码13640893857中的每一号码位代入加密算法(X3+(Y+P)2+Z*1024)%34=R中,得到输出结果,当保护密码和联系人均确定时,X、Z为固定值,故此时加密算法中的变量为P、Y以及R,每一组P、Y值对应于一个R值,其中电话号码13640893857对应的11组P、Y值(P,Y)分别为(1,1)、(2,3)、(3,6)、(4,4)、(5,0)、(6,8)、(7,9)、(8,3)、(9,8)、(10,5)、(11,7),其中(1,1)表示电话号码13640893857的偏移值为1(即第一个号码位)的号码位的值为1,(2,3)表示电话号码13640893857的偏移值为2(即第一个号码位)的号码位的值为3,依次类推。故代入11组(P,Y)后可以得到对应的11个R值,即对电话号码13640893857的每一个号码位计算得到一个在原始二维表中的行列值,如对11组(P,Y)计算得到的R值分别为01、23、20、32、21、31、03、24、13、10、42,根据得到的R值将电话号码的号码位放置在4行4列的原始二维表中,原始二维表中空缺的部分随机填充数字,从而得到一个包含电话号码的当前二维表,如图2所示,图2中较大的字体表示电话号码,较小的字体表示随机填充的数字,方便区分,实际保存时没有区分字体大小。
步骤S103,存储设置的校验信息以及加密处理后得到的当前二维表,即存储图2中所示的当前二维表以及校验信息(如hello word)。
步骤S104,用户点击移动终端界面上的联系人快捷图标、输入密码并确定以进入联系人应用,此时的密码即为当前密码。
需要注意的是,无论当前密码与保护密码是否相同,都会执行步骤S105至步骤S107,而不会在当前密码与保护密码不同时、进行“密码错误”的提示,从而当移动终端(如手机)丢失或被盗时,手机的持有者在进入联系人应用时,若输入错误的密码,仍会得到一组联系人的电话号码,而持有者不能确定输入的密码是否正确,从而不能确定得到的电话号码是否正确,因此,持有者不能通过穷举法得到正确的密码,且无法判断哪个密码下得到的电话号码是正确的;同时,对于专业的密码破解人员,即使绕过密码输入的屏障,得到的也是一张由乱序数字组成的当前二维表,因此,本发明在较大程度上提高了联系人的信息安全,更加可靠。
步骤S105,移动终端根据输入的当前密码、联系人的电话号码、姓名信息以及加密算法依次计算每一联系人的电话号码在当前二维表中的位置信息。
步骤S106,根据得到的位置信息从当前二维表中读取数据以生成当前电话号码。
下面以输入的当前密码为5467、加密算法为(X3+(Y+P)2+Z*1024)%34=R、存储的当前二维表如图2时为例,举例说明计算得到当前电话号码的计算过程:取当前二维表中张三电话号码13640893857中的每一号码位分别代入加密算法(X3+(Y+P)2+Z*1024)%34=R中,此时X为当前密码(即5467),其他输入变量Y、P、Z与预先通过保护密码加密处理过程中的输入变量Y、P、Z保持一致,从而可以得到一组输出值R,根据这一组R值从存储的当前二维表(如图2所示)中取相应位置处的数字,即可以得到一数字序列,该数字序列即为当前电话号码,由于此时的R值与之前通过保护密码为1234进行加密处理时计算得到的R值不同,从而此时从当前二维表中得到的当前电话号码也与电话号码13640893857不同,故计算得到的当前电话号码与用户存储的正确的电话号码不同,从而保护了联系人信息安全。同理,若输入的当前密码为0000,那么计算得到的当前电话号码也不是正确的电话号码。
从以上描述可以看出,只有在当前密码与设置的保护密码相同时,计算得到的当前电话号码才会与之前存储的联系人的电话号码相同,反之,若当前密码与设置的保护密码不同,那么根据当前密码经计算、在当前二维表中查找得到的当前电话号码不会是正确的电话号码。
步骤S107,显示联系人的当前电话号码。
其中在联系人的当前电话号码前会显示有校验信息,该校验信息是在设定保护密码时同时设置的,当用户忘记保护密码、通过穷举法随机输入当前密码以找回保护密码时,可以通过校验信息判断此时输入的当前密码是否正确,避免了用户自己忘记保护密码时,不能判断得到的电话号码是否正确的问题,从而方便了用户找回保护密码,体验效果更好;需要注意的是,在当前密码与保护密码不同时,当前电话号码前的校验信息是随机生成的,而与设定的校验信息不同。
需要注意的是,通过加密算法进行加密处理时,同一电话号码中的不同号码位可能处于当前二维表中的同一位置,如电话号码13812345678中的第1个号码位1与第4个号码位1经计算后都处于当前二维表中的第1行第2列,这与加密算法有关;此外,对于同一电话号码,若联系人不同,那么经加密处理得到的当前二维表也不一定相同,这是由具体的加密算法以及随机填充的数字决定的,没有规律可循,如图3所示,图3(a)表示在保护密码为1234、电话号码13812345678对应的联系人为王五时,进行加密处理后得到的当前二维表,图3(b)表示保护密码为1234、电话号码13812345678对应的联系人为李四时,进行加密处理后得到的当前二维表,从图3可以看出,只有联系人不同时,得到的当前二维表也不同,图3中较大的字体表示电话号码,较小的字体表示填充的数字,方便区分,实际保存时没有区分字体大小。。
请参考图4,描述了本发明提高联系人信息安全的移动终端一优选实施例的结构框图。如图4所示,提高联系人信息安全的移动终端100包括:
设置模块10,用于设置保护密码和校验信息;
加密模块11,用于根据保护密码、加密算法、联系人的电话号码及姓名信息对联系人的电话号码进行加密处理以生成当前二维表;其中加密算法的输入变量包括输入密码、联系人的姓名信息以及电话号码的相关信息,加密算法的输出变量为电话号码在当前二维表中的位置信息,输入密码为保护密码或当前密码;
存储模块12,用于存储加密处理得到的当前二维表;
输入模块13,用于输入当前密码;
计算模块14,用于根据当前密码、加密算法以及每一联系人的电话号码及姓名信息计算每一联系人的电话号码在当前二维表中的位置信息;以及
读取模块15,用于根据位置信息从当前二维表中读取数据以生成当前电话号码。
具体地,加密模块11包括:
计算单元110,用于根据保护密码、联系人的姓名信息依次取电话号码的每一号码位执行加密算法以得到一组输出值;
存放单元112,用于根据输出值将相应的号码位放置于一原始二维表中;以及
填充单元114,用于用随机数字填充原始二维表中没有放置号码位的位置以生成当前二维表。
本发明提高联系人信息安全的移动终端100工作时,首先通过设置模块10设置保护密码和校验信息,然后加密模块11根据保护密码、加密算法以及每一联系人的姓名信息依次对每一联系人的电话号码进行加密处理,并通过存储模块12存储加密处理得到的当前二维表,之后,当用户需要查看联系人信息时,通过输入模块13输入当前密码,然后计算模块14根据当前密码、加密算法以及每一联系人的电话号码、姓名信息计算每一联系人的电话号码在当前二维表中的位置信息,最后读取模块15根据位置信息从当前二维表中读取数据并作为当前电话号码,从而手机持有者输入当前密码后可以得到当前电话号码。故,当移动终端(如手机)丢失或被盗时,手机的持有者在进入联系人应用时,若输入错误的密码,仍会得到一组联系人的电话号码,而持有者不能确定输入的密码是否正确,从而不能确定得到的电话号码是否正确,因此,持有者不能通过穷举法得到正确的密码,且无法判断哪个密码下得到的电话号码是正确的;同时,对于专业的密码破解人员,即使绕过密码输入的屏障,得到的也是一张由乱序数字组成的当前二维表,因此,本发明在较大程度上提高了联系人的信息安全,更加可靠。
以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。