CN106250755A - 用于生成验证码的方法及装置 - Google Patents

用于生成验证码的方法及装置 Download PDF

Info

Publication number
CN106250755A
CN106250755A CN201610608009.XA CN201610608009A CN106250755A CN 106250755 A CN106250755 A CN 106250755A CN 201610608009 A CN201610608009 A CN 201610608009A CN 106250755 A CN106250755 A CN 106250755A
Authority
CN
China
Prior art keywords
identifying code
candidate
code
recognizer
probability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610608009.XA
Other languages
English (en)
Other versions
CN106250755B (zh
Inventor
姚聪
周舒畅
周昕宇
何蔚然
印奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Megvii Technology Co Ltd
Beijing Aperture Science and Technology Ltd
Original Assignee
Beijing Megvii Technology Co Ltd
Beijing Aperture Science and Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Megvii Technology Co Ltd, Beijing Aperture Science and Technology Ltd filed Critical Beijing Megvii Technology Co Ltd
Priority to CN201610608009.XA priority Critical patent/CN106250755B/zh
Publication of CN106250755A publication Critical patent/CN106250755A/zh
Application granted granted Critical
Publication of CN106250755B publication Critical patent/CN106250755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Character Discrimination (AREA)

Abstract

本发明提供了一种用于生成验证码的方法及装置,所述用于生成验证码的方法包括:生成候选验证码;调用至少一个验证码识别程序对所述候选验证码进行识别;确定所述候选验证码被正确识别的概率;以及当所述概率小于预定阈值时,输出所述候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤。根据本发明实施例的用于生成验证码的方法及装置在将最终生成的验证码发送出去之前,先调用内部识别程序对候选验证码的难易程度进行判断,只发送安全性合格的验证码,从而可以大幅降低验证码被外部自动识别程序破解的风险,提高验证码的安全性。

Description

用于生成验证码的方法及装置
技术领域
本发明涉及验证码安全技术领域,更具体地涉及一种用于生成验证码的方法及装置。
背景技术
验证码作为一种直观、便捷的区分机器与真实用户的技术手段,已在互联网领域获得广泛应用。例如,在注册、登陆以及在线交易等场合,都可能会涉及到验证码。
验证码一般多为图片的形式,其中一般包含数字、英文字母和汉字字符。随着字符识别(OCR)技术的不断发展,机器识别图片中文字的能力越来越强大。因此,图片验证码被机器破解的可能性越来越高,其安全性不断降低。
为提高图片验证码的安全性,一些技术增强手段被提出,如对图片进行扭曲操作,或添加噪声点、线条等,以期干扰机器的自动文字识别程序;此外,也有提出基于图片内容的验证码,避免通过文字识别的方式判断机器和真实用户,但是这种验证码识别难度非常大,在阻断机器的同时也大大增加真实用户识别验证码的时间,因此用户体验并不令人满意,从而无法得到大规模推广和应用。
总之,图片验证码已在互联网的各个领域获得了广泛应用,但是其安全性正在不断降低,需要新的技术手段来解决这一重要问题。
发明内容
考虑到上述问题而提出了本发明。本发明提供了一种用于生成验证码的方法及装置,其在生成验证码的过程中,利用至少一个不同的识别程序对所生成的候选验证码进行识别,丢弃容易识别的候选验证码,输出难以识别的验证码,从而提高验证码的安全性。
根据本发明一方面,提供了一种用于生成验证码的方法,所述方法包括:生成候选验证码;调用至少一个验证码识别程序对所述候选验证码进行识别;确定所述候选验证码被正确识别的概率;以及当所述概率小于预定阈值时,输出所述候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤。
在本发明的一个实施例中,所述确定所述候选验证码被正确识别的概率的步骤进一步包括:记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
在本发明的一个实施例中,所述候选验证码基于给定字符串而生成,并且所述正确识别是指对所述候选验证码的识别结果与所述给定字符串完全相同。
示例性地,所述给定字符串包括数字、英文字母与汉字字符的任意组合。
在本发明的一个实施例中,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。
示例性地,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
在本发明的一个实施例中,所述生成候选验证码包括生成图片验证码、语音验证码或视频验证码。
示例性地,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
在本发明的一个实施例中,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
根据本发明另一方面,提供了一种用于生成验证码的装置,所述装置包括:候选验证码生成模块,用于生成候选验证码;候选验证码识别模块,用于调用至少一个验证码识别程序对所述候选验证码进行识别;识别正确率确定模块,用于确定所述候选验证码被正确识别的概率;以及最终验证码输出模块,用于在所述概率小于预定阈值时输出所述候选验证码作为最终生成的验证码,并在所述概率大于或等于所述预定阈值时提示所述候选验证码生成模块重新生成候选验证码。
在本发明的一个实施例中,所述识别正确率确定模块所进行的确定所述候选验证码被正确识别的概率的步骤进一步包括:记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
在本发明的一个实施例中,所述候选验证码生成模块基于给定字符串生成候选验证码,并且所述识别正确率确定模块在所述候选验证码的识别结果与所述给定字符串完全相同时确定所述候选验证码被正确识别。
示例性地,所述给定字符串包括数字、英文字母与汉字字符的任意组合。
在本发明的一个实施例中,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。
示例性地,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
在本发明的一个实施例中,所述候选验证码生成模块用于生成图片验证码、语音验证码或视频验证码。
示例性地,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
在本发明的一个实施例中,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
根据本发明实施例的用于生成验证码的方法及装置在将最终生成的验证码发送出去之前,先调用内部识别程序对候选验证码的难易程度进行判断,只发送安全性合格的验证码,从而可以大幅降低验证码被外部自动识别程序破解的风险,提高验证码的安全性。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是用于实现根据本发明实施例的用于生成验证码的方法和装置的示例电子设备的示意性框图;
图2是根据本发明实施例的用于生成验证码的方法的示意性流程图;
图3是根据本发明实施例的用于生成验证码的装置的示意性框图;以及
图4是根据本发明实施例的用于生成验证码的系统的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
首先,参照图1来描述用于实现本发明实施例的用于生成验证码的方法和装置的示例电子设备100。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像传感器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像传感器110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的用于生成验证码的方法和装置的示例电子设备可以被实现为诸如智能手机、平板电脑等。
下面,将参考图2描述根据本发明实施例的用于生成验证码的方法200。
在步骤S210,生成候选验证码。
在一个实施例中,可以生成图片验证码、语音验证码或视频验证码等。例如,可以基于给定字符串生成包含该字符串的图片验证码、语音验证码或视频验证码等。其中,给定字符串可以包括数字、英文字母与汉字字符的任意组合。在另一个示例中,可以生成基于图片内容而非字符内容的验证码。
在步骤S220,调用至少一个验证码识别程序对所生成的候选验证码进行识别。
在一个实施例中,可以调用预先训练好的一个验证码识别程序或多个不同的验证码识别程序对所生成的候选验证码进行识别。
可基于所生成的候选验证码的类型进行验证码识别程序的不同训练。例如,如果候选验证码为图片验证码,则可基于大量的验证码图片训练一个或多个不同的验证码识别程序。类似地,如果候选验证码为语音验证码、视频验证码或其他种类的验证码,则可相应地基于大量的验证码语音、视频等来训练一个或多个不同的验证码识别程序。
下面以图片验证码为例来描述对验证码识别程序的训练。假定已经存在一个可以生成包含指定字符的图片的验证码生成器G,可以利用G生成M组图片验证码Q={Q1,Q2,...,QM},其中每组中包括大量的验证码图片,例如包括不低于100000张图片。M为可配置参数,取值可以为大于1的自然数,可基于所需计算准确度、响应时间、计算复杂度等设置M的具体取值。在一个示例中,M的取值范围可以为[4,10]。
可针对每组图片验证码Qi,i∈[1,M]训练一个验证码识别程序Ri。不同的Ri对应于不同类型和/或不同特性的文字识别算法。在一个示例中,所训练的至少一个验证码识别程序可以分别是:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法等。验证码识别程序的集合可以为R={R1,R2,...,RM}。使用多个不同的验证码识别程序对用一个候选验证码进行识别,可以避免单个验证码识别程序的识别正确或错误的偶然性,且还能够识别多种复杂的候选验证码(例如,噪声较大、较模糊、图像扭曲较严重),适应性好,从而能够更准确地在后续处理中确定正确识别的概率。
可基于上述训练好的一个或者多个验证码识别程序对所生成的候选验证码进行识别,以确定当前候选验证码是否易于识别。例如,输出经识别的结果,并将该结果与生成候选验证码所基于的给定字符串进行比较,确定识别结果正确与否、正确率高低情况等。
在步骤S230,确定所述候选验证码被正确识别的概率。
在一个实施例中,可以基于验证码识别程序对候选验证码的识别结果是否与生成候选验证码所基于的给定字符串完全相同来确定该候选验证码是否被正确识别。该实施例适用于对给定字符串进行形状变化的场景,候选验证码的字符个数、字符排布顺序等与给定字符串一致。例如,给定字符串为宋体的“验证码”三个字,基于此生成的候选验证码为草书的“验证码”。
在另一个实施例中,可以基于验证码识别程序对候选验证码的识别结果是否与候选验证码完全相同来确定该候选验证码是否被正确识别。该实施例适用于候选验证码包括给定字符串的字符,但其字符排布顺序的部分与给定字符串不一致的场景。
例如,当验证码识别程序对候选验证码的识别结果与生成候选验证码所基于的给定字符串(或者候选验证码)完全相同时,确定该验证码识别程序识别正确,并且该候选验证码被正确识别一次。下一个验证识别程序的识别结果仍与候选验证码或者生成该候选验证码所基于的给定字符串完全相同时,确定该验证码识别程序识别正确,并且该候选验证码被正确识别的次数继续累加。以此类推,可以记录所述候选验证码被所述多个验证码识别程序正确识别的次数,并基于正确识别的次数和验证码识别程序的数目计算所述候选验证码被正确识别的概率。例如,给定字符串s,s中包括数字、英文字母和/或汉字字符,可调用图片验证码生成器G生成对应的验证码图片I(s);然后调用训练好的验证码识别程序R={R1,R2,...,RM}分别对图片I(s)进行识别,记录M个验证码识别程序对候选验证码识别正确的次数p,其中识别正确与否的标准可以如上所述。例如将候选验证码被正确识别的概率记为v,则v=p/M。可基于该概率确定当前候选验证码是否能够作为最终的验证码输出。
在步骤S240,当候选验证码被正确识别的概率小于预定阈值时,输出该候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤(即返回步骤S210)。
其中,预定阈值可以基于最终生成的验证码所应用的场合而设置。例如,当验证码将应用于涉及财产安全的领域时,可将预定阈值的值设置得相对大一些,例如设其取值范围为[0.95,1]。再如,当验证码将应用于安全性要求相对较低的场合时,可将预定阈值的值设置得相对小一些,例如设其取值范围为[0.8,0.85]。在普遍的应用中,可将预定阈值的取值范围设为例如[0.8,0.99]。
接着上面的示例,候选验证码被正确识别的概率记为v=p/M,其中,M为验证码识别程序的数目,p为这些验证码识别程序对候选验证码识别正确的次数。将预定阈值设为T,如果v小于T,则意味着当前候选验证码I(s)难以识别,可将该验证码返回,作为最终生成的验证码输出;如果v大于T,则意味着当前候选验证码I(s)相对易于识别,则可丢弃该验证码,返回到步骤S210生成新的候选验证码用于下次识别判断。
在一些示例中,若调用一个验证码识别程序对所生成的候选验证码进行识别,则在步骤S230中,当该验证码识别程序的识别结果与候选验证码(或者生成该候选验证码所基于的给定字符串)完全相同时,确定该候选验证码被正确识别的概率为1,反之确定该候选验证码被正确识别的概率为0。进一步地,在步骤S240中,将被正确识别的概率为0的候选验证码作为最终生成的验证码输出,反之,若该候选验证码被正确识别的概率为1,则返回步骤S210。
基于上面的描述,根据本发明实施例的用于生成验证码的方法在将最终生成的验证码发送出去之前,先调用内部识别程序对候选验证码的难易程度进行判断,只发送安全性合格的验证码,从而可以大幅降低验证码被外部自动识别程序破解的风险,提高验证码的安全性。
示例性地,根据本发明实施例的用于生成验证码的方法可以在具有存储器和处理器的设备、装置或者系统中实现。
根据本发明实施例的用于生成验证码的方法可以部署在个人终端处,诸如智能电话、平板电脑、个人计算机等。替代地,根据本发明实施例的用于生成验证码的方法还可以部署在服务器端(或云端)。替代地,根据本发明实施例的用于生成验证码的方法还可以分布地部署在服务器端(或云端)和个人终端处。
图3示出了根据本发明实施例的用于生成验证码的装置300的示意性框图。
如图3所示,根据本发明实施例的用于生成验证码的装置300包括候选验证码生成模块310、候选验证码识别模块320、识别正确率确定模块330和最终验证码输出模块340。
候选验证码生成模块310用于生成候选验证码。候选验证码识别模块320用于调用至少一个验证码识别程序对所述候选验证码进行识别。识别正确率确定模块330用于确定所述候选验证码被正确识别的概率。最终验证码输出模块340用于在所述概率小于预定阈值时输出所述候选验证码作为最终生成的验证码,并在所述概率大于或等于所述预定阈值时提示所述候选验证码生成模块重新生成候选验证码。候选验证码生成模块310、候选验证码识别模块320、识别正确率确定模块330和最终验证码输出模块340均可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。
根据本发明实施例,候选验证码生成模块310可以生成图片验证码、语音验证码或视频验证码等。例如,候选验证码生成模块310可以基于给定字符串生成包含该字符串的图片验证码、语音验证码或视频验证码等。其中,给定字符串可以包括数字、英文字母与汉字字符的任意组合。在另一个示例中,候选验证码生成模块310可以生成基于图片内容而非字符内容的验证码。
根据本发明实施例,候选验证码识别模块320可以调用预先训练好的至少一个不同的验证码识别程序对所生成的候选验证码进行识别。可基于所生成的候选验证码的类型进行验证码识别程序的不同训练。例如,如果候选验证码为图片验证码,则可基于大量的验证码图片训练一个或多个不同的验证码识别程序。类似地,如果候选验证码为语音验证码、视频验证码或其他种类的验证码,则可相应地基于大量的验证码语音、视频等来训练一个或多个不同的验证码识别程序。
下面以图片验证码为例来描述对验证码识别程序的训练。假定已经存在一个可以生成包含指定字符的图片的验证码生成器G,可以利用G生成M组图片验证码Q={Q1,Q2,…,QM},其中每组中包括大量的验证码图片,例如包括不低于100000张图片。M为可配置参数,取值可以为大于1的自然数,可基于所需计算准确度、响应时间、计算复杂度等设置M的具体取值。在一个示例中,M的取值范围可以为[4,10]。
可针对每组图片验证码Qi,i∈[1,M]训练一个验证码识别程序Ri。不同的Ri对应于不同类型和/或不同特性的文字识别算法。在一个示例中,所训练的一个或多个验证码识别程序可以分别是:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法等。验证码识别程序的集合可以为R={R1,R2,…,RM}。
候选验证码识别模块320可基于上述训练好的至少一个验证码识别程序对所生成的候选验证码进行识别,以用于确定当前候选验证码是否易于识别。例如,候选验证码识别模块320输出经识别的结果,并由识别正确率确定模块330将该结果与生成候选验证码所基于的给定字符串进行比较,确定识别结果正确与否、正确率高低情况等。
根据本发明实施例,识别正确率确定模块330可以基于验证码识别程序对候选验证码的识别结果是否与生成候选验证码所基于的给定字符串完全相同来确定该候选验证码是否被正确识别。
例如,当验证码识别程序对候选验证码的识别结果与生成候选验证码所基于的给定字符串完全相同时,识别正确率确定模块330可确定该验证码识别程序识别正确,并且记录该候选验证码被正确识别一次。下一个验证识别程序的识别结果仍与生成候选验证码所基于的给定字符串完全相同时,则识别正确率确定模块330可确定该验证码识别程序识别正确,并且将该候选验证码被正确识别的次数继续累加。以此类推,识别正确率确定模块330可以记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数,并基于正确识别的次数和验证码识别程序的数目计算所述候选验证码被正确识别的概率。
例如,给定字符串s,s中包括数字、英文字母和/或汉字字符,候选验证码生成模块310可调用图片验证码生成器G生成对应的验证码图片I(s)。然后,候选验证码识别模块320调用训练好的验证码识别程序R={R1,R2,...,RM}分别对图片I(s)进行识别,由识别正确率确定模块330记录M个验证码识别程序对候选验证码识别正确的次数p,其中识别正确与否的标准可以如上所述。例如将候选验证码被正确识别的概率记为v,则v=p/M。最终验证码输出模块340可基于该概率确定当前候选验证码是否能够作为最终的验证码输出。
根据本发明实施例,最终验证码输出模块340将候选验证码被正确识别的概率与预定阈值相比较,以确定当前候选验证码是否易于识别。其中,预定阈值可以基于最终生成的验证码所应用的场合而设置。例如,当验证码将应用于涉及财产安全的领域时,可将预定阈值的值设置得相对大一些,例如设其取值范围为[0.95,1]。再如,当验证码将应用于安全性要求相对较低的场合时,可将预定阈值的值设置得相对小一些,例如设其取值范围为[0.8,0.85]。在普遍的应用中,可将预定阈值的取值范围设为例如[0.8,0.99]。
将预定阈值设为T,如果v小于T,则意味着当前候选验证码I(s)难以识别,则最终验证码输出模块340可将该验证码返回,作为最终生成的验证码输出;如果v大于T,则意味着当前候选验证码I(s)相对易于识别,则最终验证码输出模块340可丢弃该验证码,并提示候选验证码生成模块生成新的候选验证码用于下次识别判断。
基于上面的描述,根据本发明实施例的用于生成验证码的装置在将最终生成的验证码发送出去之前,先调用内部识别程序对候选验证码的难易程度进行判断,只发送安全性合格的验证码,从而可以大幅降低验证码被外部自动识别程序破解的风险,提高验证码的安全性。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
图4示出了根据本发明实施例的用于生成验证码的系统400的示意性框图。用于生成验证码的系统400包括存储装置410以及处理器420。
其中,存储装置410存储用于实现根据本发明实施例的用于生成验证码的方法中的相应步骤的程序代码。处理器420用于运行存储装置420中存储的程序代码,以执行根据本发明实施例的用于生成验证码的方法的相应步骤,并且用于实现根据本发明实施例的用于生成验证码的装置中的相应模块。
在一个实施例中,在所述程序代码被处理器420运行时使得用于生成验证码的系统400执行以下步骤:生成候选验证码;调用至少一个验证码识别程序对所述候选验证码进行识别;确定所述候选验证码被正确识别的概率;以及当所述概率小于预定阈值时,输出所述候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤。
在一个示例中,所述确定所述候选验证码被正确识别的概率的步骤进一步包括:记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
在一个示例中,所述候选验证码基于给定字符串而生成,并且所述正确识别是指对所述候选验证码的识别结果与所述给定字符串完全相同。示例性地,所述给定字符串可以包括数字、英文字母与汉字字符的任意组合。
在一个示例中,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。示例性地,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
在一个示例中,所述生成候选验证码包括生成图片验证码、语音验证码或视频验证码。示例性地,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
在一个示例中,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的用于生成验证码的方法的相应步骤,并且用于实现根据本发明实施例的用于生成验证码的装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含生成候选验证码的计算机可读的程序代码,另一个计算机可读存储介质包含调用至少一个验证码识别程序对所述候选验证码进行识别的计算机可读的程序代码,又一个计算机可读存储介质包含确定所述候选验证码被正确识别的概率的计算机可读的程序代码,再一个计算机可读存储介质包含当所述概率小于预定阈值时输出所述候选验证码作为最终生成的验证码、否则提示重新生成候选验证码的计算机可读的程序代码。
在一个实施例中,所述计算机程序指令在被计算机运行时可以实现根据本发明实施例的用于生成验证码的装置的各个功能模块,并且/或者可以执行根据本发明实施例的用于生成验证码的方法。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行以下步骤:生成候选验证码;调用至少一个验证码识别程序对所述候选验证码进行识别;确定所述候选验证码被正确识别的概率;以及当所述概率小于预定阈值时,输出所述候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤。
在一个示例中,所述确定所述候选验证码被正确识别的概率的步骤进一步包括:记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
在一个示例中,所述候选验证码基于给定字符串而生成,并且所述正确识别是指对所述候选验证码的识别结果与所述给定字符串完全相同。示例性地,所述给定字符串可以包括数字、英文字母与汉字字符的任意组合。
在一个示例中,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。示例性地,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
在一个示例中,所述生成候选验证码包括生成图片验证码、语音验证码或视频验证码。示例性地,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
在一个示例中,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
根据本发明实施例的用于生成验证码的装置中的各模块可以通过根据本发明实施例的用于生成验证码的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。
根据本发明实施例的用于生成验证码的方法、装置、系统以及存储介质在将最终生成的验证码发送出去之前,先调用内部识别程序对候选验证码的难易程度进行判断,只发送安全性合格的验证码,从而可以大幅降低验证码被外部自动识别程序破解的风险,提高验证码的安全性。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

1.一种用于生成验证码的方法,其特征在于,所述方法包括:
生成候选验证码;
调用至少一个验证码识别程序对所述候选验证码进行识别;
确定所述候选验证码被正确识别的概率;以及
当所述概率小于预定阈值时,输出所述候选验证码作为最终生成的验证码,否则返回所述生成候选验证码的步骤。
2.根据权利要求1所述的方法,其特征在于,所述确定所述候选验证码被正确识别的概率的步骤进一步包括:
记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及
基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
3.根据权利要求1所述的方法,其特征在于,所述候选验证码基于给定字符串而生成,并且所述正确识别是指对所述候选验证码的识别结果与所述给定字符串完全相同。
4.根据权利要求3所述的方法,其特征在于,所述给定字符串包括数字、英文字母与汉字字符的任意组合。
5.根据权利要求1所述的方法,其特征在于,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。
6.根据权利要求5所述的方法,其特征在于,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
7.根据权利要求1所述的方法,其特征在于,所述生成候选验证码包括生成图片验证码、语音验证码或视频验证码。
8.根据权利要求7所述的方法,其特征在于,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
9.根据权利要求1所述的方法,其特征在于,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
10.一种用于生成验证码的装置,其特征在于,所述装置包括:
候选验证码生成模块,用于生成候选验证码;
候选验证码识别模块,用于调用至少一个验证码识别程序对所述候选验证码进行识别;
识别正确率确定模块,用于确定所述候选验证码被正确识别的概率;以及
最终验证码输出模块,用于在所述概率小于预定阈值时输出所述候选验证码作为最终生成的验证码,并在所述概率大于或等于所述预定阈值时提示所述候选验证码生成模块重新生成候选验证码。
11.根据权利要求10所述的装置,其特征在于,所述识别正确率确定模块所进行的确定所述候选验证码被正确识别的概率的步骤进一步包括:
记录所述候选验证码被所述至少一个验证码识别程序正确识别的次数;以及
基于所述正确识别的次数和所述验证码识别程序的数目计算所述候选验证码被正确识别的概率。
12.根据权利要求10所述的装置,其特征在于,所述候选验证码生成模块基于给定字符串生成候选验证码,并且所述识别正确率确定模块在所述候选验证码的识别结果与所述给定字符串完全相同时确定所述候选验证码被正确识别。
13.根据权利要求12所述的装置,其特征在于,所述给定字符串包括数字、英文字母与汉字字符的任意组合。
14.根据权利要求10所述的装置,其特征在于,所述至少一个验证码识别程序分别对应于不同类型和/或不同特性的文字识别算法。
15.根据权利要求14所述的装置,其特征在于,所述至少一个验证码识别程序至少包括以下中的两个或两个以上:对噪声点不敏感的算法、对模糊不敏感的算法、对图像扭曲不敏感的算法、对文字字体变化不敏感的算法。
16.根据权利要求10所述的装置,其特征在于,所述候选验证码生成模块用于生成图片验证码、语音验证码或视频验证码。
17.根据权利要求16所述的装置,其特征在于,所述至少一个验证码识别程序中的每一个基于大量验证码图片、语音或视频训练而成。
18.根据权利要求10所述的装置,其特征在于,所述预定阈值基于所述最终生成的验证码所应用的场合而设置。
CN201610608009.XA 2016-07-28 2016-07-28 用于生成验证码的方法及装置 Active CN106250755B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610608009.XA CN106250755B (zh) 2016-07-28 2016-07-28 用于生成验证码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610608009.XA CN106250755B (zh) 2016-07-28 2016-07-28 用于生成验证码的方法及装置

Publications (2)

Publication Number Publication Date
CN106250755A true CN106250755A (zh) 2016-12-21
CN106250755B CN106250755B (zh) 2021-11-19

Family

ID=57604324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610608009.XA Active CN106250755B (zh) 2016-07-28 2016-07-28 用于生成验证码的方法及装置

Country Status (1)

Country Link
CN (1) CN106250755B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647683A (zh) * 2018-04-28 2018-10-12 浙江大学 一种基于频域加噪的字符对抗验证码生成方法和系统
CN111125672A (zh) * 2019-12-30 2020-05-08 广东智媒云图科技股份有限公司 一种图像验证码的生成方法及装置
CN111128115A (zh) * 2019-12-11 2020-05-08 北京声智科技有限公司 信息验证方法、装置、电子设备及存储介质
CN111177689A (zh) * 2019-12-30 2020-05-19 广东智媒云图科技股份有限公司 验证码的生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093138A (zh) * 2013-01-05 2013-05-08 中国传媒大学 基于静态字符进行captcha图灵测试的认证方法及系统
CN104065666A (zh) * 2014-07-03 2014-09-24 北京齐尔布莱特科技有限公司 一种生成图片验证码的方法及装置
US20150324573A1 (en) * 2014-05-08 2015-11-12 Alibaba Group Holding Limited Method and system for generating verification codes
CN105701391A (zh) * 2014-11-27 2016-06-22 阿里巴巴集团控股有限公司 动态验证码图片生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093138A (zh) * 2013-01-05 2013-05-08 中国传媒大学 基于静态字符进行captcha图灵测试的认证方法及系统
US20150324573A1 (en) * 2014-05-08 2015-11-12 Alibaba Group Holding Limited Method and system for generating verification codes
CN104065666A (zh) * 2014-07-03 2014-09-24 北京齐尔布莱特科技有限公司 一种生成图片验证码的方法及装置
CN105701391A (zh) * 2014-11-27 2016-06-22 阿里巴巴集团控股有限公司 动态验证码图片生成方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647683A (zh) * 2018-04-28 2018-10-12 浙江大学 一种基于频域加噪的字符对抗验证码生成方法和系统
CN111128115A (zh) * 2019-12-11 2020-05-08 北京声智科技有限公司 信息验证方法、装置、电子设备及存储介质
CN111128115B (zh) * 2019-12-11 2022-09-16 北京声智科技有限公司 信息验证方法、装置、电子设备及存储介质
CN111125672A (zh) * 2019-12-30 2020-05-08 广东智媒云图科技股份有限公司 一种图像验证码的生成方法及装置
CN111177689A (zh) * 2019-12-30 2020-05-19 广东智媒云图科技股份有限公司 验证码的生成方法及装置

Also Published As

Publication number Publication date
CN106250755B (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
KR102171220B1 (ko) 클레임 서류의 문자 인식 방법, 장치, 서버 및 저장매체
CN105809164B (zh) 文字识别方法和装置
CN109635110A (zh) 数据处理方法、装置、设备以及计算机可读存储介质
CN109871326B (zh) 一种脚本录制的方法和装置
CN110704633A (zh) 命名实体识别方法、装置、计算机设备及存储介质
CN108040032A (zh) 一种声纹认证方法、账号注册方法及装置
CN109147797A (zh) 基于声纹识别的客服方法、装置、计算机设备及存储介质
CN106250755A (zh) 用于生成验证码的方法及装置
CN110675862A (zh) 语料获取方法、电子装置及存储介质
CN104765745B (zh) 对数据库中的加载数据进行逻辑验证的方法和系统
CN112017056B (zh) 一种智能双录方法及系统
CN108053545A (zh) 证件验真方法和装置、服务器、存储介质
CN109947651B (zh) 人工智能引擎优化方法和装置
CN108255702A (zh) 一种测试用例创建方法、装置、设备及存储介质
US20220012168A1 (en) Smart test case generator
CN111598122B (zh) 数据校验方法、装置、电子设备和存储介质
US11899770B2 (en) Verification method and apparatus, and computer readable storage medium
CN116245074A (zh) 芯片验证方法、设备及存储介质
CN110784435B (zh) 一种异常服务识别方法、装置、电子设备及存储介质
CN117495544A (zh) 一种基于沙箱的风控评估方法、系统、终端及存储介质
CN112990868A (zh) 车辆保险自动赔付方法、系统、设备及存储介质
CN111651500A (zh) 用户身份识别方法、电子设备及存储介质
CN111090846A (zh) 登录认证方法、装置、电子设备及计算机可读存储介质
CN115509904A (zh) 一种接口测试用例的断言生成方法及装置
CN111914820B (zh) 资质审核方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100190 Beijing, Haidian District Academy of Sciences, South Road, No. 2, block A, No. 313

Applicant after: MEGVII INC.

Applicant after: Beijing maigewei Technology Co., Ltd.

Address before: 100190 Beijing, Haidian District Academy of Sciences, South Road, No. 2, block A, No. 313

Applicant before: MEGVII INC.

Applicant before: Beijing aperture Science and Technology Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant