本发明属于智能设备技术领域,尤其涉及一种短信验证码的判断方法及装置。
背景技术:
现有的短信应用程序在接收到短信后,能够提取并显示短信内容中的验证码。然而,当短信中包括多个验证码关键字和/或包括多个符合要求的验证码字符串时,现有技术无法正确地提取短信中的验证码,验证码识别的准确率低,用户体验差。
技术实现要素:
鉴于此,本发明实施例提供一种短信验证码的判断方法及装置,以提高验证码提取的准确率。
第一方面,提供了一种短信验证码的判断方法,所述判断方法包括:
当获取到短信时,判断所述短信是否为验证码短信;
当所述短信为验证码短信时,根据关键字和验证码字符串判断所述验证码短信中的验证码。
第二方面,提供了一种短信验证码的判断装置,所述判断装置包括:
第一判断模块,用于当获取到短信时,判断所述短信是否为验证码短信;
第二判断模块,用于当所述短信为验证码短信时,根据关键字和验证码字符串判断所述验证码短信中的验证码。
与现有技术相比,本发明实施例在获取到短信时,首先判断所述短信是否为验证码短信;当所述短信为验证码短信时,则根据关键字和验证码字符串判断所述验证码短信中的验证码,从而提高了验证码提取的准确率,解决了当短信中包括多个验证码关键字和/或包括多个符合要求的验证码字符串时现有技术无法正确地提取短信中的验证码的问题,提升了用户的体验感。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的短信验证码的判断方法的实现流程图;
图2是本发明实施例提供的短信验证码的判断方法中步骤S102的具体实现流程图;
图3是本发明实施例提供的短信验证码的判断方法中步骤S202的实现流程图;
图4是本发明实施例提供的短信验证码的判断方法中步骤S202根据验证码字符串的位数进行验证码判断的实现流程图;
图5是本发明实施例提供的短信验证码的判断方法中步骤S203的具体实现流程图;
图6是另一实施例提供的短信验证码的判断方法中步骤S102的实现流程图;
图7是本发明实施例提供的短信验证码的判断装置的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例在获取到短信时,首先判断所述短信是否为验证码短信;当所述短信为验证码短信时,则根据关键字和验证码字符串判断所述验证码短信中的验证码,从而提高了验证码提取的准确率,解决了当短信中包括多个验证码关键字和/或包括多个符合要求的验证码字符串时现有技术无法正确地提取短信中的验证码的问题,提升了用户的体验感。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
图1示出了本发明实施例提供的短信验证码的判断方法的实现流程。
在本发明实施例中,所述短信验证码的判断方法应用于智能终端,所述智能终端能够进行短信收发,包括但不限于智能手机、智能手表等。
参阅图1,所述短信验证码的判断方法包括:
在步骤S101中,获取短信。
在步骤S102中,判断所述短信是否为验证码短信。
在本发明实施例中,智能终端获取到短信后,首先判断所述短信是否为验证码短信,若是,则执行步骤S103;否则,执行步骤S105,按照普通短信的方式进行处理。
在这里,优选通过检测所述短信中是否存在预设的关键字和验证码字符串,来确定所述短信是否为验证码短信。若检测到预设的关键字和验证码字符串,则确定所述短信为验证码短信。其中,可以通过关键字匹配的方法来检测所述关键字,以及通过正则表达式来检测所述验证码字符串。所述验证码字符串为若干位数字和/或字母组合而成的字符串。需要说明的是,这里所获取的验证码字符串是指有可能为验证码的数字、字母或者数字和字母混合的字符串,区别与有效的验证码。验证码短信中可以包括多个验证码字符串。
在步骤S103中,根据关键字和验证码字符串判断所述验证码短信中的验证码。
可选地,若检测到预设的关键字和验证码字符串,则确定所述短信为验证码短信,并通过预设的悬浮窗口的方式显示在智能终端屏幕的预设位置上。所述预设位置包括但不限于屏幕的左侧、右侧、顶部、底部或者中心位置等。(放后)。然后进行验证码判断。
作为本发明的一个优选示例,所述关键字包括与验证码意思相似、相近的特征字符,比如验证码、验证代码、校验码、校验代码、检验码、检验代码、激活码、激活代码、确认码、确认代码、动态密码、注册码、兑换码等。图2示出了本发明实施例提供的短信验证码的判断方法中步骤S102的具体实现流程。参阅图2,所述步骤S102包括:
在步骤S201中,找出所述短信中所有的所述关键字。
在步骤S202中,在所述关键字中选取有效关键字。
在步骤S203中,根据所述有效关键字获取所述验证码。
在这里,当所述短信中只有一个关键字时,则获取所述关键字作为有效关键字,并以所述有效关键字获取验证码。当所述关键字有两个及以上时,则通过判断每一个关键字与其前和后的首个标点符号之间是否存在验证码字符串来确定所述关键字是否为有效关键字。其中,所述的标点符号包括但不限于中文句号“。”、英文句号“.”、中文分号“;”、英文分号“;”、中文叹号“!”、英文叹号“!”等。示例性地,图3示出了本发明实施例提供的步骤S202的实现流程。参阅图3,步骤S202包括:
在步骤S301中,若所述关键字的数量为至少两个,则判断每一所述关键字与其前和后的首个标点符号之间是否存在验证码字符串。
在步骤S302中,若有且只有一个所述关键字与其前和后的首个标点符号之间存在所述验证码字符串时,则选取所述关键字为有效关键字。
示例性地,给出验证码短信1:
[XX酒店]校验码为XXXX,请填写该校验码。
在上述验证码短信1中,第一个“校验码”与其后的首个标点符号“,”之间存在验证码字符串“XXXX”,第二个“校验码”与其后的首个标点符号“。”之间、与其前的首个标点符号“,”之间均不存在验证码字符串。在这种情况下,按照步骤S302,则以第一个“校验码”为有效关键字。
在步骤S303中,若所有所述关键字与其前和后的首个标点符号之间均不存在所述验证码字符串,则选取在验证码短信中位置靠前的所述关键字为有效关键字。
比如,对于验证码短信2:
[大众点评]XXXX(网手机动态码),请使用该手机动态码完成验证。
此时,第一个关键字“动态码”与其前和后的首个标点符号“()”之间、第二个关键字“动态码”与其前的首个标点符号“,”和与其后的首个标点符号“。”之间均不存在验证码字符串,则选取第一个“动态码”作为有效关键字。
进一步地,若存在至少两个所述关键字与其前和后的首个标点符号之间存在所述验证码字符串时,则引入验证码字符串的位数,根据验证码字符串的位数来判断获取有效关键字。图4示出了本发明实施例提供的步骤S202中根据验证码字符串的位数进行验证码判断的实现流程。参阅图4,步骤S202还包括:
在步骤S401中,若存在至少两个所述关键字与其前和后的首个标点符号之间存在所述验证码字符串时,则排除不符合第一预设条件的所述关键字,判断剩余的所述关键字对应的所述验证码字符串的位数是否满足预设值。
在这里,所述第一预设条件是指关键字与其前和后的首个标点符号之间存在验证码字符串。因此,这里为排除关键字与其前和后的首个标点符号之间不存在验证码字符串的关键字。排除之后,判断剩余的关键字对应的所述验证码字符串的位数是否为预设值。示例性地,根据一般的密码设置规律,所述预设值可以为4至8中的任一值。因此,步骤S401具体为判断剩余的关键字对应的验证码字符串的位数是否达到4位至8位。
在步骤S402中,若位数满足预设值的所述验证码字符串对应的所述关键字有且只有一个,则选取所述关键字为有效关键字。
示例性地,对于验证码短信3:
[大众点评]手机动态码为2000,请在30分钟内使用该手机动态码完成验证。
在上述验证码短信3中,第一个关键字“动态码”与其后的首个标点符号“,”之间存在验证码字符串“2000”和第二个关键字“动态码”与其前首个标点符号“,”之间存在验证码字符串“30”。当位数的预设值为4时,由于验证码字符串“30”的位数为2,不满足预设值;而验证码字符串“2000”的位数为4,满足预设值。则可以得到上述验证码短信3中位数满足预设值的所述验证码字符串对应的所述关键字有且只有一个,选取所述该“动态码”(即第一个“动态码”)为有效关键字
在步骤S403中,若所有所述关键字对应的所述验证码字符串的位数均不满足预设值,则选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字。
示例性地,对于验证码短信4:
[大众点评]大众点评网手机注册码为123456789,请在30分钟内使用该手机动态码完成验证。
在上述验证码短信4中,第一个关键字“注册码”与其后的首个标点符号“,”之间存在验证码字符串“123456789”,第二个关键字“注册码”与其前首个标点符号“,”之间存在验证码字符串“30”。当位数的预设值为4时,由于验证码字符串“30”的位数为2,不满足预设值;而验证码字符串“123456789”的位数为4,也不满足预设值;则在上述验证码短信4中所有所述关键字对应的所述验证码字符串的位数均不满足预设值,则按照步骤S403选择在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字,上述验证码短信4中应当选取第一个“注册码”作为有效关键字。
进一步地,步骤S202还可以包括:
在步骤S404中,若位数满足预设值的所述验证码字符串对应的所述关键字为至少两个,则排除不符合第二预设条件的所述关键字,判断剩余的所述关键字对应的所述验证码字符串位于所述关键字的前方或后方。
在这里,所述第二预设条件为所述关键字与其前和后的首个标点符号之间存在验证码字符串且所述验证码字符串的位数为预设值。若位数满足预设值的所述验证码字符串对应的所述关键字为至少两个,则排除不符合第二预设条件的所述关键字;继续判断剩余的所述关键字(即满足第一预设条件和第二预设条件的关键字)对应的所述验证码字符串位于所述关键字的前方还是后方。
在步骤S405中,若所述验证码字符串位于对应的所述关键字的后方的所述关键字有且仅有一个,则选取所述关键字为有效关键字。
根据使用习惯,本发明实施例优先选取验证码字符串位于关键字后的关键字。
示例性地,对于验证码短信5:
验证码为1234,请在30分钟内在尾号为0716的手机中输入该验证码。——[招商银行]
在上述验证码短信5中,假设位数的预设值为4。第一个关键字“验证码”与其后的首个标点符号“,”之间存在验证码字符串“1234”,位数为4,满足预设值;第二个关键字“验证码”与其前首个标点符号“,”之间存在验证码字符串“0716”,位数为4,也满足预设值。然后判断所述验证码字符串是位于所述关键字的前方还是后方。显而易见,只有第一个“验证码”其对应的验证码字符串位于其后方,故选择该第一个“验证码”作为有效关键字。
在步骤S406中,若所有所述关键字对应的所述验证码字符串均位于所述关键字的前方,则选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字。
在步骤S407中,若有至少两个所述关键字对应的所述验证码字符串均位于所述关键字的后方,则排除其它关键字,在剩余关键字中选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字。
在这里,若验证码字符串位于有效关键字后的有效关键字有多个,则按照这些有效关键字在验证码短信中出现的先后顺序,选取位置靠前的有效关键,进行验证码提取。
示例性地,对于验证码短信6:
验证码为1234,请在30分钟内将该验证码输入至尾号为0716的手机中。——[招商银行]
在上述验证码短信6中,假设位数的预设值为4。第一个关键字“验证码”与其后的首个标点符号“,”之间存在验证码字符串“1234”,其位数为4,满足预设值;第二个关键字“验证码”与其后个标点符号“。”之间存在验证码字符串“0716”,其位数为4,也满足预设值。然后判断所述验证码字符串是位于所述关键字的前方还是后方。显而易见,两个“验证码”其对应的验证码字符串位于其后方,故选择该第一个“验证码”作为有效关键字。
在通过步骤S202获取有效关键字之后,则根据所述有效关键字选取所述验证码。可选地,图5示出了本发明实施例提供的步骤S203的具体实现流程。参阅图5,所述步骤S203包括:
在步骤S501中,若所述有效关键字前或后存在对应的验证码字符串,则提取所述验证码字符串作为验证码
在步骤S502中,若所述有效关键字前和后均存在对应的验证码字符串,则提取所述有效关键字后的验证码字符串作为验证码。
上述是一种通用的验证码提取方案,可以适应各种不同标准的验证码短信。通过上述优选示例,先通过关键字与验证码字符串的位置关系初步筛选有效关键字,然后根据验证码字符串的位数再次筛选有效关键字,最后根据验证码关键字与有效关键字之间的位置关系选取进行验证码提取的有效关键字,从而实现了对验证码短信中的有效关键字的有效性验证和筛选,排除无效的关键字,有效地提高了验证码提取的准确率。
对于一些模式固定的验证码短信,也可以开发专门的规则,以提高整体的效率。作为本发明的另一个优选示例,可通过指定关键字来识别短信为验证码短信并直接进行验证码提取,所述指定关键字为开发人员根据模式固定的验证码短信总结出来的字词。该模式固定的验证码短信必定包含该指定关键字。图6示出了本发明另一实施例提供的基于指定关键字获取验证码的实现流程。参阅图6,所述步骤S102还可以包括:
在步骤S601中,找出所述短信中所有的所述关键字。
在步骤S602中,判断所述关键字中是否存在指定关键字。
在步骤S603中,若存在所述指定关键字,则直接采用预设规则获取验证码。
在步骤S604中,若不存在所述指定关键字或无法通过预设规则获取到验证码,则通过在所述关键字中选出有效关键字来获取有效验证码。
示例性地,对于验证码短信7:
短信验证码:123456,您现在正要进行网银登陆,请您输出六位短信验证码完成登陆验证[工商银行]。
在这条工商银行的登陆验证码短息中,因为其文字模式通常是固定的,可以直接通过指定关键字“工商银行”、“登陆”判断出这是工商银行的登陆短信,又因为格式固定,可以直接找到验证码的位置,这样就可以直接提取出验证码了,所以在通过步骤S201找出关键字后如果发现有指定关键字的话就可以直接进行上述的判断,如果没有指定关键字则执行上述通用的验证码提取方案。
上述的通过指定关键字判断是否是特定的验证码短信可以是通过一个指定关键字例如:工商银行,或者是两个指定关键字工商银行和登陆,具体的判断方式根据短信格式不同采用不同的方式。
可选地,所述预设规则包括:
当仅存在唯一所述指定关键字时,将所述指定关键字作为有效关键字,所述有效关键字对应的验证码字符串为验证码,所述验证码字符串位于所述指定关键字和所述指定关键字后的首个标点符号之间;
当存在至少两个所述指定关键字时,将在短信中靠前的所述指定关键字作为有效关键字,所述有效关键字对应的验证码字符串为验证码,所述验证码位于所述指定关键字和所述指定关键字后的首个标点符号之间。
示例性地,对于验证码短信7:
短信验证码:123456,您现在正要进行网银登陆,请您输出六位短信验证码完成登陆验证[工商银行]。
若指定关键字为“验证码”,此时,按照步骤上述预设规则,可以得到验证码为123456。
通过上述优选示例,实现了对一些已知的具有固定格式的验证码短信直接获取验证码,以及直接对验证码短信中的验证码字符串的有效性验证,从而提高了验证码识别的准确率和效率,提升了用户的体验感。
可选地,在本发明实施例中,还可以对所述验证码短信中的验证码的复制和粘贴。所述短信验证码的判断方法还可以包括:
当接收到用户输入的复制指令时,复制所述有效的验证码;
当接收到用户输入的粘贴指令时,将所复制的有效的验证码输出至指定的验证码输入框中。
本发明实施例在获取到短信时,首先判断所述短信是否为验证码短信;当所述短信为验证码短信时,则剖析所述验证码短信中关键字和验证码字符串,判断并提取有效的验证码,从而提高了验证码提取的准确率,解决了当短信中包括多个验证码关键字和/或包括多个符合要求的验证码字符串时现有技术无法正确地提取短信中的验证码的问题,提升了用户的体验感。
需要说明的是,上述给出的验证码短信1至7仅作为本发明的示例,仅用于解释说明本发明实施例提供的短信验证码的判断方法,并不用于限制本发明。
图7示出了本发明实施例提供的短信验证码的判断装置的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,所述短信验证码的判断装置应用于智能终端,可以是内置于智能终端的软件单元、硬件单元或者软硬件结合的单元。可选地,所述智能终端包括但不限于智能手机、智能手表等。
参阅图7,所述短信验证码的判断装置包括:
第一判断模块71,用于当获取到短信时,判断所述短信是否为验证码短信;
第二判断模块72,用于当所述短信为验证码短信时,根据关键字和验证码字符串判断所述验证码短信中的验证码。
进一步地,所述第一判断模块71具体用于:
当获取到短信时,检测所述短信中是否存在预设的关键字和验证码字符串;
若是,则确定所述短信为验证码短信。
作为本发明的一个优选示例,所述第二判断模块72包括:
查询单元721,用于找出所述短信中所有的所述关键字;
有效关键字选取单元722,用于在所述关键字中选取有效关键字;
验证码获取单元723,用于根据所述有效关键字获取所述验证码。
进一步地,所述有效关键字选取单元722包括:
判断子单元7221,用于若所述关键字的数量为至少两个,则判断每一所述关键字与其前和后的首个标点符号之间是否存在验证码字符串;
选取子单元7222,用于若有且只有一个所述关键字与其前和后的首个标点符号之间存在所述验证码字符串时,则选取所述关键字为有效关键字;
若所有所述关键字与其前和后的首个标点符号之间均不存在所述验证码字符串,则选取在验证码短信中位置靠前的所述关键字为有效关键字。
进一步地,所述判断子单元7221还包括:
若存在至少两个所述关键字与其前和后的首个标点符号之间存在所述验证码字符串时,则排除不符合第一预设条件的所述关键字,判断剩余的所述关键字对应的所述验证码字符串的位数是否满足预设值;
所述选取子单元7222还用于:
若位数满足预设值的所述验证码字符串对应的所述关键字有且只有一个,则选取所述关键字为有效关键字;
若所有所述关键字对应的所述验证码字符串的位数均不满足预设值,则选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字。
进一步地,所述判断子单元7221还用于:
若位数满足预设值的所述验证码字符串对应的所述关键字为至少两个,则排除不符合第二预设条件的所述关键字,判断剩余的所述关键字对应的所述验证码字符串位于所述关键字的前方或后方;
所述选取子单元7222还用于:
若所述验证码字符串位于对应的所述关键字的后方的所述关键字有且仅有一个,则选取所述关键字为有效关键字;
若所有所述关键字对应的所述验证码字符串均位于所述关键字的前方,则选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字;
若有至少两个所述关键字对应的所述验证码字符串均位于所述关键字的后方,则排除其它关键字,在剩余关键字中选取在验证码短信中位置靠前并存在对应的所述验证码字符串的所述关键字为有效关键字。
进一步地,所述验证码获取单元723具体用于:
若所述有效关键字前或后存在对应的验证码字符串,则提取所述验证码字符串作为验证码;
若所述有效关键字前和后均存在对应的验证码字符串,则提取所述有效关键字后的验证码字符串作为验证码。
作为本发明的另一个优选示例,所述第二判断模块72还包括:
指定关键字获取单元724,用于在找出所述短信中所有的所述关键字的之后,判断所述关键字中是否存在指定关键字;
验证码获取单元723还用于,若存在所述指定关键字,则直接采用预设规则获取验证码;若不存在所述指定关键字或无法通过预设规则获取到验证码,则通过在所述关键字中选出有效关键字来获取验证码。
可选地,所述预设规则包括:
当仅存在唯一所述指定关键字时,将所述指定关键字作为有效关键字,所述有效关键字对应的验证码字符串为验证码,所述验证码字符串位于所述指定关键字和所述指定关键字后的首个标点符号之间;
当存在至少两个所述指定关键字时,将在短信中靠前的所述指定关键字作为有效关键字,所述有效关键字对应的验证码字符串为验证码,所述验证码位于所述指定关键字和所述指定关键字后的首个标点符号之间
通过上述优选示例,实现了对验证码短信中的验证码字符串的有效性验证,提高了验证码识别的准确率,进而提升了用户的体验感。
可选地,在本发明实施例中,还可以对所述验证码短信中的验证码的复制和粘贴。所述短信验证码的判断装置还可以包括:
复制模块,用于当接收到用户输入的复制指令时,复制所述有效的验证码;
粘贴模块,用于当接收到用户输入的粘贴指令时,将所复制的有效的验证码输出至指定的验证码输入框中。
需要说明的是,本发明实施例中的装置可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实例中的相关描述,此处不再赘述。
本发明实施例在获取到短信时,首先判断所述短信是否为验证码短信;当所述短信为验证码短信时,则剖析所述验证码短信中关键字和验证码字符串,判断并提取有效的验证码,从而提高了验证码提取的准确率,解决了当短信中包括多个验证码关键字和/或包括多个符合要求的验证码字符串时现有技术无法正确地提取短信中的验证码的问题,提升了用户的体验感。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的短信验证码的判断方法及装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元、模块单独物理存在,也可以两个或两个以上单元、模块集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。