CN109981268B - 一种防破解的验证码生成方法 - Google Patents
一种防破解的验证码生成方法 Download PDFInfo
- Publication number
- CN109981268B CN109981268B CN201910241047.XA CN201910241047A CN109981268B CN 109981268 B CN109981268 B CN 109981268B CN 201910241047 A CN201910241047 A CN 201910241047A CN 109981268 B CN109981268 B CN 109981268B
- Authority
- CN
- China
- Prior art keywords
- question
- verification code
- answer
- verification
- characters
- 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
- G06F21/36—User authentication by graphic or iconic representation
-
- 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/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开一种防破解的验证码生成方法,将验证码的问题题干的字符重新进行随机排列,生成图片序列P;并通过随机数R与编号ID进行异或操作,得到加密后的问题编号EID;将所述备选答案组A,问题编号EID,以及图片序列P发送到请求端;再将随机数R与请求端返回的问题编号EID进行异或操作,得到真实的问题编号ID,查找问题编号ID对应的准确答案a,将查找到的准确答案a与请求端返回的选择的答案a1进行对比,得到验证结果。本发明极大的增加了计算机的自动识别难度,极大的增加了验证码的破解难度,有效的达到了验证码的防破解的目的,增加了web系统的安全性。
Description
技术领域
本发明涉及网络安全技术领域,具体为一种防破解的验证码生成方法。
背景技术
在web服务进行身份验证的过程中,为避免CC攻击、恶意破解密码、刷票、论坛灌水等行为,一般采用验证码的方式;验证码通过提供一些计算机难于理解的问题,来识别出正常的人类行为,过滤掉非法异常行为。
在现有技术中通常将验证问题置于图片中,增加计算机自动识别的难度。但是,目前计算机图像识别的能力和准确性都已很高,可以直接破解藏身在图片中的问题,将验证码的防御效果大打折扣。同时,计算机图像识别技术十分成熟和普及,降低了对图片验证码方式的破解难度;让验证码失去了本有的意义。
验证码:验证码(CAPTCHA)是“Completely Automated Public Turing test totell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)”的缩写,是一种区分用户是计算机还是人的自动机制。
会话(Session):一个客户与服务器之间的不中断的请求响应序列。对客户的每个请求,服务器能够识别出请求来自于同一个客户。
发明内容
针对上述问题,本发明的目的在于提供一种能够增加计算机的自动识别难度和验证码的破解难度,达到验证码的防破解目的,增加web系统的安全性的防破解的验证码生成方法。技术方案如下:
一种防破解的验证码生成方法,包括以下步骤:
步骤1:在服务端创建验证码题库;
步骤2:将验证码题库中的所有问题用到的字符分别制作成图片;
步骤3:将验证码题库中问题的题干、备选答案、准确答案存储到问题数据库中,并生成唯一的问题编号ID;
步骤4:将问题用到的字符和其对应的字符图片,以及二者之间的对应关系存储到问题数据库中;
步骤5:生成验证码:
步骤51:从所述问题数据库中,随机选择一个问题Q,以及对应的备选答案组A,问题Q的编号ID;
步骤52:将问题Q题干的字符重新进行随机排列;
步骤53:生成一个随机数R,将随机数R与问题Q的编号ID进行异或操作,得到加密后的问题编号EID,然后将随机数R保存到会话中;
步骤54:对上述随机排列后的题干,依次查找字符对应的图片,生成图片序列P;
步骤55:将所述备选答案组A,加密后的问题编号EID,以及图片序列P发送到请求端;
步骤6:检验请求端返回的验证码答案:
步骤61:请求端将加密后的问题编号EID、选择的答案a1发送给服务端进行验证;
步骤62:服务端从当前会话中取出步骤53生成的随机数R,并将随机数R与请求端返回的问题编号EID进行异或操作,得到真实的问题编号ID;
步骤63:从所述问题数据库中,查找所述问题编号ID对应的准确答案a;
步骤64:将查找到的准确答案a与请求端返回的选择的答案a1进行对比;相同则认为验证通过,否则,验证失败。
进一步的,所述问题用到的字符制作成的图片用不同的字体、颜色和形状显示。
更进一步的,所述随机数R的取值范围为:0<R<0xFFFFFFFF。
本发明的有益效果是:本发明将验证码问题的题干字符进行了随机排列处理,极大的增加了计算机的自动识别难度;通过随机数加密问题编号,使得即使相同的问题在每次使用时,请求端看到的ID也不相同,极大的增加了验证码的破解难度;有效的达到了验证码的防破解的目的,增加了web系统的安全性。
附图说明
图1为本发明防破解的验证码生成方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。本发明的核心构思是将验证码的问题进行乱序处理,并加密验证码问题编号(ID),使得计算机无法直接识别,必须借助人的主观认识和理解,从而达到防止验证码被破解的目的。
本实施例验证码生成方法的流程图如图1所示,具体步骤如下:
步骤1:创建验证码题库;问题尽量是开放式问题,没有唯一的标准答案。
例如问题为“你的身高最接近哪一个值”,备选答案为“0.1”、“10”、“170”、“1000000”,准确答案为“170”。
步骤2:将步骤1中的所有问题用到的字符分别制作成图片;字符图片可以使用不同的字体、颜色、形状等,进一步增加识别难度。
步骤3:将步骤1的问题的题干、备选答案、准确答案存储到数据库中,并生成唯一的问题编号ID。
步骤4:将步骤2的字符和其对应的字符图片以及对应关系存储到数据库中。
步骤5:生成验证码:
步骤51:从所述问题数据库中,随机选择一个问题Q,以及对应的备选答案组A,问题Q的编号ID;
步骤52:将问题Q题干的字符重新进行随机排列;例如“你的身高最接近哪一个值”,随机后为“哪高身的你近接最个值一”。
将验证码的问题题干字符进行随机排列处理,极大的增加了计算机的自动识别难度。
步骤53:生成一个随机数R(0<R<0xFFFFFFFF),将随机数R与问题Q的编号ID进行异或操作,得到加密后的问题编号EID,然后将随机数R保存到会话(Session)中。
通过随机数加密问题编号,使得即使相同的问题在每次使用时,请求端看到的 ID也不相同,极大的增加了验证码的破解难度;有效的达到了验证码的防破解的目的,增加了web 系统的安全性。
步骤54:对上述随机排列后的题干,依次查找字符对应的图片,生成图片序列P;
步骤55:将所述备选答案组A,加密后的问题编号EID,以及图片序列P发送到请求端。
步骤6:检验请求端返回的验证码答案:
步骤61:请求端将加密后的问题编号EID、选择的答案a1发送给服务端进行验证;
步骤62:服务端从当前会话(Session)中取出步骤53生成的随机数R,并将随机数R与请求端返回的问题编号EID进行异或操作,得到真实的问题编号ID;
步骤63:从所述问题数据库中,查找所述问题编号ID对应的准确答案a;
步骤64:将查找到的准确答案a与请求端返回的选择的答案a1进行对比;相同则认为验证通过,否则,验证失败。
Claims (3)
1.一种防破解的验证码生成方法,其特征在于,包括以下步骤:
步骤1:在服务端创建验证码验证问题题库;
步骤2:将验证码验证问题题库中的所有问题用到的字符分别制作成图片;
步骤3:将验证码验证问题题库中问题的题干、备选答案、准确答案存储到问题数据库中,并生成唯一的问题编号ID;
步骤4:将问题用到的字符和其对应的字符图片,以及二者之间的对应关系存储到问题数据库中;
步骤5:生成验证码:
步骤51:从所述问题数据库中,随机选择一个问题Q,以及对应的备选答案组A,问题Q的编号ID;
步骤52:将问题Q题干的字符重新进行随机排列;
步骤53:生成一个随机数R,将随机数R与问题Q的编号ID进行异或操作,得到加密后的问题编号EID,然后将随机数R保存到会话中;
步骤54:对上述随机排列后的题干,依次查找字符对应的图片,生成图片序列P;
步骤55:将所述备选答案组A,加密后的问题编号EID,以及图片序列P发送到请求端;
步骤6:检验请求端返回的验证码答案:
步骤61:请求端将加密后的问题编号EID、选择的答案a1发送给服务端进行验证;
步骤62:服务端从当前会话中取出步骤53生成的随机数R,并将随机数R与请求端返回的问题编号EID进行异或操作,得到问题Q的编号ID;
步骤63:从所述问题数据库中,查找所述问题Q的编号ID对应的准确答案a;
步骤64:将查找到的准确答案a与请求端返回的选择的答案a1进行对比;相同则认为验证通过,否则,验证失败。
2.根据权利要求1所述的防破解的验证码生成方法,其特征在于,所述问题用到的字符制作成的图片用不同的字体、颜色和形状显示。
3.根据权利要求1所述的防破解的验证码生成方法,其特征在于,所述随机数R的取值范围为:0<R<0xFFFFFFFF。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910241047.XA CN109981268B (zh) | 2019-03-28 | 2019-03-28 | 一种防破解的验证码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910241047.XA CN109981268B (zh) | 2019-03-28 | 2019-03-28 | 一种防破解的验证码生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981268A CN109981268A (zh) | 2019-07-05 |
CN109981268B true CN109981268B (zh) | 2021-07-16 |
Family
ID=67081131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910241047.XA Active CN109981268B (zh) | 2019-03-28 | 2019-03-28 | 一种防破解的验证码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109981268B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990821B (zh) * | 2019-11-25 | 2022-04-15 | 泰康保险集团股份有限公司 | 一种身份类型验证方法、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2726019Y (zh) * | 2004-06-21 | 2005-09-14 | 倪锁林 | 一种新型教学辅导系统 |
CN101964152A (zh) * | 2010-10-27 | 2011-02-02 | 昆明冶金高等专科学校 | 一种基于局域网的网络考试系统及其实现方法 |
CN102724191A (zh) * | 2012-06-11 | 2012-10-10 | 华南理工大学 | 一种图文结合的Web验证码安全防护方法及装置 |
WO2014201256A1 (en) * | 2013-06-12 | 2014-12-18 | Hector Ruiz | Polygraph report system that is equipment agnostic |
CN104468486A (zh) * | 2013-09-23 | 2015-03-25 | 联想(北京)有限公司 | 信息处理方法、系统及电子设备 |
CN104468580A (zh) * | 2014-12-10 | 2015-03-25 | 北京众享比特科技有限公司 | 适用于分布式存储的认证方法 |
US9641328B1 (en) * | 2014-03-10 | 2017-05-02 | Ionu Security, Inc. | Generation of public-private key pairs |
CN108926847A (zh) * | 2018-06-21 | 2018-12-04 | 无锡天脉聚源传媒科技有限公司 | 一种针对答题游戏的数据处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552738B2 (en) * | 2012-04-04 | 2017-01-24 | Educational Testing Service | Systems and methods for computer-based testing |
US20160119142A1 (en) * | 2014-05-23 | 2016-04-28 | Michael Theodore Lester | Encryption, Decryption, and Triggered Delivery of Files |
-
2019
- 2019-03-28 CN CN201910241047.XA patent/CN109981268B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2726019Y (zh) * | 2004-06-21 | 2005-09-14 | 倪锁林 | 一种新型教学辅导系统 |
CN101964152A (zh) * | 2010-10-27 | 2011-02-02 | 昆明冶金高等专科学校 | 一种基于局域网的网络考试系统及其实现方法 |
CN102724191A (zh) * | 2012-06-11 | 2012-10-10 | 华南理工大学 | 一种图文结合的Web验证码安全防护方法及装置 |
WO2014201256A1 (en) * | 2013-06-12 | 2014-12-18 | Hector Ruiz | Polygraph report system that is equipment agnostic |
CN104468486A (zh) * | 2013-09-23 | 2015-03-25 | 联想(北京)有限公司 | 信息处理方法、系统及电子设备 |
US9641328B1 (en) * | 2014-03-10 | 2017-05-02 | Ionu Security, Inc. | Generation of public-private key pairs |
CN104468580A (zh) * | 2014-12-10 | 2015-03-25 | 北京众享比特科技有限公司 | 适用于分布式存储的认证方法 |
CN108926847A (zh) * | 2018-06-21 | 2018-12-04 | 无锡天脉聚源传媒科技有限公司 | 一种针对答题游戏的数据处理方法及系统 |
Non-Patent Citations (3)
Title |
---|
SocialQ&A: An Online Social Network Based Question and Answer System;Haiying Shen;《IEEE》;20161018;全文 * |
基于Web的在线考试系统设计与实现;夏一名;《中国优秀硕士学位论文全文数据库.电子期刊》;20130515(第5期);全文 * |
考试系统中若干关键技术研究与系统实现;付细楚;《中国优秀硕士学位论文全文数据库.电子期刊》;20051115(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109981268A (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106797371B (zh) | 用于用户认证的方法和系统 | |
Tan et al. | Can unicorns help users compare crypto key fingerprints? | |
US11599624B2 (en) | Graphic pattern-based passcode generation and authentication | |
Thorpe et al. | Human-Seeded Attacks and Exploiting Hot-Spots in Graphical Passwords. | |
US9077710B1 (en) | Distributed storage of password data | |
CN109150541A (zh) | 一种认证系统及其工作方法 | |
US20200311250A1 (en) | Graphic Pattern-Based Authentication with Adjustable Challenge Level | |
CN106453205B (zh) | 一种身份验证方法和装置 | |
CN106470204A (zh) | 基于请求行为特征的用户识别方法、装置、设备及系统 | |
US8943563B1 (en) | Authentication system and method using arrangements of objects | |
CN106790243B (zh) | 一种安全u盘的密码重置方法 | |
CN109981268B (zh) | 一种防破解的验证码生成方法 | |
WO2015062441A1 (zh) | CGI web界面下的多会话验证码的产生及验证方法 | |
CN111949952B (zh) | 验证码请求处理方法及计算机可读存储介质 | |
KR101600474B1 (ko) | 솔티드 패스워드 인증방법 | |
CN102571341B (zh) | 一种基于动态图像的认证系统及认证方法 | |
US11483166B2 (en) | Methods and devices for enrolling and authenticating a user with a service | |
CN107844290B (zh) | 基于数据流安全威胁分析的软件产品设计方法及装置 | |
Sonwalkar | Captcha: Novel approach to secure user | |
Le et al. | A new pre-authentication protocol in Kerberos 5: Biometric authentication | |
CN117371048B (zh) | 远程访问的数据处理方法、装置、设备及存储介质 | |
CN114186209B (zh) | 身份验证方法及系统 | |
CN101057444B (zh) | 基于随机部分数字化路径识别的鉴别系统和方法 | |
US20230057862A1 (en) | Fraud resistant passcode entry system | |
EP4258142A1 (en) | Method for validating user authentication in information systems |
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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 9/F, Block C, No. 28 Tianfu Avenue North Section, Chengdu High tech Zone, China (Sichuan) Pilot Free Trade Zone, Chengdu City, Sichuan Province, 610000 Patentee after: CHENGDU KNOWNSEC INFORMATION TECHNOLOGY Co.,Ltd. Address before: 610000, 11th floor, building 2, No. 219, Tianfu Third Street, hi tech Zone, Chengdu, Sichuan Province Patentee before: CHENGDU KNOWNSEC INFORMATION TECHNOLOGY Co.,Ltd. |