CN106570363B - 验证码生成及校验方法 - Google Patents
验证码生成及校验方法 Download PDFInfo
- Publication number
- CN106570363B CN106570363B CN201610944668.0A CN201610944668A CN106570363B CN 106570363 B CN106570363 B CN 106570363B CN 201610944668 A CN201610944668 A CN 201610944668A CN 106570363 B CN106570363 B CN 106570363B
- Authority
- CN
- China
- Prior art keywords
- verification code
- verification
- check value
- calculation rule
- input keyboard
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明提出了验证码生成及校验方法,所述方法包括:验证码控制器在接收到来自用户接口的验证码请求后调用验证码生成器生成验证码;将所生成的验证码传送至验证码输入键盘生成器以生成与验证码相关联的验证码输入键盘;调用验证码计算规则生成器动态地生成计算规则,并根据所生成的计算规则计算与验证码相关联的校验值,随之将所述校验值存储在数据库中;将验证码、与所述验证码相关联的验证码输入键盘以及用以实施计算规则的计算规则脚本发送至用户接口以获得用户反馈,并随之基于数据库中的与验证码相关联的校验值校验所述用户反馈的正确性。本发明所公开的方法具有增强的安全性。
Description
技术领域
本发明涉及信息校验方法,更具体地,涉及验证码生成及校验方法。
背景技术
目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,通过识别并校验验证码而防止恶意登录,注册等等行为(例如灌水、刷票、秒杀商品等等)变得越来越重要。
在现有的技术方案中,通常采用发送文本或图形形式的验证码让用户通过输入接口输入的方式来防止恶意登录或注册等等的行为。
然而,现有的技术方案存在如下问题:由于验证码的生成和输入操作缺乏足够的安全机制,故易于被破解和/或模拟。
因此,存在如下需求:提供具有增强的安全性的验证码生成及校验方法。
发明内容
为了解决上述现有技术方案所存在的问题,本发明提出了具有增强的安全性的验证码生成及校验方法。
本发明的目的是通过以下技术方案实现的:
一种验证码生成及校验方法,所述验证码生成及校验方法包括下列步骤:
(A1)验证码控制器在接收到来自用户接口的验证码请求后调用验证码生成器生成验证码;
(A2)所述验证码控制器将所生成的验证码传送至验证码输入键盘生成器以生成与所述验证码相关联的验证码输入键盘;
(A3)所述验证码控制器调用验证码计算规则生成器动态地生成计算规则,并根据所生成的计算规则计算与所述验证码相关联的校验值,随之将所述校验值存储在数据库中;
(A4)所述验证码控制器将所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口以获得用户反馈,并随之基于所述数据库中的与所述验证码相关联的校验值校验所述用户反馈的正确性。
在上面所公开的方案中,优选地,所述验证码是显示码。
在上面所公开的方案中,优选地,所述步骤(A2)进一步包括:在接收到验证码后,所述验证码输入键盘生成器根据所述验证码的内容动态地生成与所述验证码相关联的验证码输入键盘,其中,所述验证码输入键盘包括键盘按钮,并且所述验证码输入键盘包含所述键盘按钮的显示值和隐藏值,所述键盘按钮的显示值涵盖所述验证码的值,而所述键盘按钮的隐藏值以随机的方式被生成,且与每个键盘按钮一一对应。
在上面所公开的方案中,优选地,所述步骤(A2)进一步包括:所述验证码控制器获取与所述验证码输入键盘中的每个键盘按钮对应的隐藏值,并按照所述验证码的显示顺序将所述隐藏值分别放入数组A[1,…,n]中。
在上面所公开的方案中,优选地,所述计算规则包括加减乘除规则、混合运算规则、排列组合规则以及固定数字规则中的一个或多个。
在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:在将所述校验值存储在数据库中后,所述数据库创建校验值ID,以将校验值与该ID相绑定。
在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:所述验证码控制器将所述校验值ID连同所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口。
在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:在接收到所述校验值ID以及所述验证码、所述与所述验证码相关联的验证码输入键盘和用以实施所述计算规则的计算规则脚本后,所述用户接口向用户显示所述验证码的值和所述验证码输入键盘,并提示用户根据所述验证码的值以及其排序顺序经由所述验证码输入键盘输入验证码。
在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:在用户经由所述验证码输入键盘输入验证码时,所述用户接口按照用户点击键盘按钮的顺序选取与用户所点击的键盘按钮对应的隐藏值,并将所述隐藏值分别放入数组A[1,…,n]中,并随之运行所述计算规则脚本而计算与所接收的验证码相关联的校验值,随之将计算出的校验值连同接收到的校验值ID传送回所述验证码控制器。
在上面所公开的方案中,优选地,所述步骤(A3)进一步包括:在接收到所述用户接口传送回的校验值以及校验值ID后,所述验证码控制器基于所述校验值ID查询所述数据库,以获取被预先存储在所述数据库中的与所述校验值ID相绑定的校验值,并随之比较所述用户接口传送回的校验值和被预先存储在所述数据库中的对应的校验值,如果两者匹配,则校验通过,否则,校验失败。
本发明所公开的验证码生成及校验方法具有以下优点:由于采用显示码和随机隐藏码相结合的方式,并且动态地生成计算规则。故具有增强的安全性,由此恶意用户难于破解和/或模拟。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的验证码生成及校验方法的流程图。
具体实施方式
图1是根据本发明的实施例的验证码生成及识别方法的流程图。如图1所示,本发明所公开的验证码生成及校验方法包括下列步骤:(A1)验证码控制器在接收到来自用户接口(例如浏览器、移动终端中的应用客户端等等)的验证码请求后调用验证码生成器生成验证码;(A2)所述验证码控制器将所生成的验证码传送至验证码输入键盘生成器以生成与所述验证码相关联的验证码输入键盘;(A3)所述验证码控制器调用验证码计算规则生成器动态地生成计算规则,并根据所生成的计算规则计算与所述验证码相关联的校验值,随之将所述校验值存储在数据库中;(A4)所述验证码控制器将所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口以获得用户反馈,并随之基于所述数据库中的与所述验证码相关联的校验值校验所述用户反馈的正确性。
优选地,在本发明所公开的验证码生成及校验方法中,所述验证码是显示码(即能够可视地向用户显示)。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A2)进一步包括:在接收到验证码后,所述验证码输入键盘生成器根据所述验证码的内容动态地生成与所述验证码相关联的验证码输入键盘,其中,所述验证码输入键盘包括键盘按钮,并且所述验证码输入键盘包含所述键盘按钮的显示值和隐藏值,所述键盘按钮的显示值涵盖所述验证码的值,而所述键盘按钮的隐藏值(即隐藏码,用户不可见)以随机的方式被生成,且与每个键盘按钮一一对应。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A2)进一步包括:所述验证码控制器获取与所述验证码输入键盘中的每个键盘按钮对应的隐藏值,并按照所述验证码的显示顺序将所述隐藏值分别放入数组A[1,…,n]中(即将隐藏值分别放入A[0]、A[1]、A[2]、A[3]、A[4]… A[n]中)。
优选地,在本发明所公开的验证码生成及校验方法中,所述计算规则包括加减乘除规则(例如A[0]+ A[1]*A[3]- A[4])、混合运算规则(例如A[0]*A[1]+A[3]-A[4]+随机数)、排列组合规则(例如A[0] A[4] A[3]A[1])以及固定数字规则(例如A[0] A[1] A[2]A[3]=1359)中的一个或多个。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A3)进一步包括:在将所述校验值存储在数据库中后,所述数据库创建校验值ID,以将校验值与该ID相绑定。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A3)进一步包括:所述验证码控制器将所述校验值ID连同所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A3)进一步包括:在接收到所述校验值ID以及所述验证码、所述与所述验证码相关联的验证码输入键盘和用以实施所述计算规则的计算规则脚本后,所述用户接口向用户显示所述验证码的值和所述验证码输入键盘,并提示用户根据所述验证码的值以及其排序顺序经由所述验证码输入键盘输入验证码。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A3)进一步包括:在用户经由所述验证码输入键盘输入验证码时,所述用户接口按照用户点击键盘按钮的顺序选取与用户所点击的键盘按钮对应的隐藏值,并将所述隐藏值分别放入数组A[1,…,n]中(即将隐藏值分别放入A[0]、A[1]、A[2]、A[3]、A[4]… A[n]中),并随之运行所述计算规则脚本而计算与所接收的验证码相关联的校验值,随之将计算出的校验值连同接收到的校验值ID传送回所述验证码控制器。
优选地,在本发明所公开的验证码生成及校验方法中,所述步骤(A3)进一步包括:在接收到所述用户接口传送回的校验值以及校验值ID后,所述验证码控制器基于所述校验值ID查询所述数据库,以获取被预先存储在所述数据库中的与所述校验值ID相绑定的校验值,并随之比较所述用户接口传送回的校验值和被预先存储在所述数据库中的对应的校验值,如果两者匹配,则校验通过,否则,校验失败。
由上可见,本发明所公开的验证码生成及校验方法具有下列优点:由于采用显示码和随机隐藏码相结合的方式,并且动态地生成计算规则。故具有增强的安全性,由此恶意用户难于破解和/或模拟。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (9)
1.一种验证码生成及校验方法,所述验证码生成及校验方法包括下列步骤:
(A1)验证码控制器在接收到来自用户接口的验证码请求后调用验证码生成器生成验证码;
(A2)所述验证码控制器将所生成的验证码传送至验证码输入键盘生成器以生成与所述验证码相关联的验证码输入键盘;
(A3)所述验证码控制器调用验证码计算规则生成器动态地生成计算规则,并根据所生成的计算规则计算与所述验证码相关联的校验值,随之将所述校验值存储在数据库中;
(A4)所述验证码控制器将所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口以获得用户反馈,并随之基于所述数据库中的与所述验证码相关联的校验值校验所述用户反馈的正确性,
其中,所述步骤(A2)进一步包括:在接收到验证码后,所述验证码输入键盘生成器根据所述验证码的内容动态地生成与所述验证码相关联的验证码输入键盘,其中,所述验证码输入键盘包括键盘按钮,并且所述验证码输入键盘包含所述键盘按钮的显示值和隐藏值,所述键盘按钮的显示值涵盖所述验证码的值,而所述键盘按钮的隐藏值以随机的方式被生成,且与每个键盘按钮一一对应。
2.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述验证码是显示码。
3.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A2)进一步包括:所述验证码控制器获取与所述验证码输入键盘中的每个键盘按钮对应的隐藏值,并按照所述验证码的显示顺序将所述隐藏值分别放入数组A[1,…,n]中。
4.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述计算规则包括加减乘除规则、混合运算规则、排列组合规则以及固定数字规则中的一个或多个。
5.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A3)进一步包括:在将所述校验值存储在数据库中后,所述数据库创建校验值ID,以将校验值与该ID相绑定。
6.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A3)进一步包括:所述验证码控制器将所述校验值ID连同所述验证码、所述与所述验证码相关联的验证码输入键盘以及用以实施所述计算规则的计算规则脚本发送至所述用户接口。
7.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A3)进一步包括:在接收到所述校验值ID以及所述验证码、所述与所述验证码相关联的验证码输入键盘和用以实施所述计算规则的计算规则脚本后,所述用户接口向用户显示所述验证码的值和所述验证码输入键盘,并提示用户根据所述验证码的值以及其排序顺序经由所述验证码输入键盘输入验证码。
8.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A3)进一步包括:在用户经由所述验证码输入键盘输入验证码时,所述用户接口按照用户点击键盘按钮的顺序选取与用户所点击的键盘按钮对应的隐藏值,并将所述隐藏值分别放入数组A[1,…,n]中,并随之运行所述计算规则脚本而计算与所接收的验证码相关联的校验值,随之将计算出的校验值连同接收到的校验值ID传送回所述验证码控制器。
9.根据权利要求1所述的验证码生成及校验方法,其特征在于,所述步骤(A3)进一步包括:在接收到所述用户接口传送回的校验值以及校验值ID后,所述验证码控制器基于所述校验值ID查询所述数据库,以获取被预先存储在所述数据库中的与所述校验值ID相绑定的校验值,并随之比较所述用户接口传送回的校验值和被预先存储在所述数据库中的对应的校验值,如果两者匹配,则校验通过,否则,校验失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610944668.0A CN106570363B (zh) | 2016-10-26 | 2016-10-26 | 验证码生成及校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610944668.0A CN106570363B (zh) | 2016-10-26 | 2016-10-26 | 验证码生成及校验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106570363A CN106570363A (zh) | 2017-04-19 |
CN106570363B true CN106570363B (zh) | 2020-04-21 |
Family
ID=58536554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610944668.0A Active CN106570363B (zh) | 2016-10-26 | 2016-10-26 | 验证码生成及校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106570363B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454095A (zh) * | 2017-08-23 | 2017-12-08 | 深圳市优品壹电子有限公司 | 一种防止机器登录的方法及装置 |
CN111385360B (zh) * | 2020-03-05 | 2023-09-05 | 深信服科技股份有限公司 | 终端设备的识别方法、装置及计算机可读存储介质 |
CN112364318B (zh) * | 2020-11-24 | 2021-12-31 | 北京海联捷讯科技股份有限公司 | 一种运维大数据安全管理的方法、***、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794365A (zh) * | 2010-03-23 | 2010-08-04 | 中兴通讯股份有限公司 | 在移动终端上安全输入信息的方法及移动终端 |
CN101923619A (zh) * | 2009-06-15 | 2010-12-22 | 鸿富锦精密工业(深圳)有限公司 | 密码按键伪装***及方法 |
CN103607274A (zh) * | 2013-10-22 | 2014-02-26 | 周灿旭 | 一种以静态密码为源生成动态密码的方法 |
CN104618359A (zh) * | 2015-01-22 | 2015-05-13 | 成都西山居世游科技有限公司 | 一种用户登录过程安全加固方法及*** |
CN105704095A (zh) * | 2014-11-26 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 身份验证方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103370718B (zh) * | 2011-03-21 | 2016-01-20 | 索尼爱立信移动通讯有限公司 | 使用分布式安全密钥的数据保护方法、设备和*** |
-
2016
- 2016-10-26 CN CN201610944668.0A patent/CN106570363B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923619A (zh) * | 2009-06-15 | 2010-12-22 | 鸿富锦精密工业(深圳)有限公司 | 密码按键伪装***及方法 |
CN101794365A (zh) * | 2010-03-23 | 2010-08-04 | 中兴通讯股份有限公司 | 在移动终端上安全输入信息的方法及移动终端 |
CN103607274A (zh) * | 2013-10-22 | 2014-02-26 | 周灿旭 | 一种以静态密码为源生成动态密码的方法 |
CN105704095A (zh) * | 2014-11-26 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 身份验证方法和装置 |
CN104618359A (zh) * | 2015-01-22 | 2015-05-13 | 成都西山居世游科技有限公司 | 一种用户登录过程安全加固方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106570363A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11854003B2 (en) | Signature verification method, apparatus, and system | |
US10462118B2 (en) | Systems and methods for login and authorization | |
CN105827412B (zh) | 认证方法、服务器及客户端 | |
CN102843236B (zh) | 一种动态口令的生成及认证方法与*** | |
CN104579708B (zh) | 一种群组加入方法和装置 | |
KR101851686B1 (ko) | 거래 인증을 위하여 추출된 무작위 일회용 패스워드 | |
CN101238475B (zh) | 软件应用安全方法和*** | |
CN106570363B (zh) | 验证码生成及校验方法 | |
CN110399713A (zh) | 一种信息认证的方法及相关装置 | |
US20230094860A1 (en) | Secure processing method, apparatus, and system used by merchant management device | |
NZ541711A (en) | Human factors authentication using abstract definitions of viewable or audible objects | |
US9191386B1 (en) | Authentication using one-time passcode and predefined swipe pattern | |
CN111241517A (zh) | 一种生物特征验证问答库的构建方法和装置 | |
CN111275404B (zh) | 基于区块链的评审方法、装置、设备和介质 | |
CN104348617A (zh) | 验证码处理方法、装置、终端及服务器 | |
CN105162773A (zh) | 一种基于移动终端的Web***便捷登录方法 | |
CN108174360A (zh) | 一种短信发送方法及装置、短信验证方法及装置 | |
CN113709115A (zh) | 认证方法及装置 | |
CN104348613B (zh) | 用户校验方法、装置及*** | |
CN102752311A (zh) | 一种认证方法、***和装置 | |
CN105100093A (zh) | 一种身份认证的方法和服务器 | |
CN104079527A (zh) | 一种信息处理方法及电子设备 | |
CN101277183A (zh) | 登录信息的输入方法、***及***的实现方法 | |
CN105577692A (zh) | 一种网站登录认证方法和装置 | |
CN111064578B (zh) | 数据安全上报方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |