CN100576794C - 图片验证码的实现方法 - Google Patents
图片验证码的实现方法 Download PDFInfo
- Publication number
- CN100576794C CN100576794C CN200510111902A CN200510111902A CN100576794C CN 100576794 C CN100576794 C CN 100576794C CN 200510111902 A CN200510111902 A CN 200510111902A CN 200510111902 A CN200510111902 A CN 200510111902A CN 100576794 C CN100576794 C CN 100576794C
- Authority
- CN
- China
- Prior art keywords
- picture
- user
- pictures
- validation code
- checking
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种在网络中用于防止页面被恶意程序攻击的图片验证码实现方法,采用图片形式作为认证码,***从已经存在的大量图片列表中随机取出N(N≥4)张不完全重复的图片,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2;用户在使用图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示。本发明可以防止网络中浏览页面被恶意程序攻击,可以防止人为的恶意注册,增强网络信息的安全性。
Description
技术领域
本发明涉及一种在网络中用于防止页面被恶意程序攻击的图片验证码实现方法。
技术背景
目前,在网络浏览器界面中多采用数字或数字加图片背景的形式作为用户注册输入验证码,保证网页中注册信息及信息的安全性。在输入用户名及静态密码后,会增加一个随机的认证码,此密码多数情况是采用数字、字母或数字与字母的结合等认证码方式。用户通过肉眼识别其中验证码信息,输入表单提交网站验证,验证成功后才能正确登录使用。当前使用比较流行的是生成4个随机数字和杂乱背景的图片(即增加一定的干扰像素),数字和背景颜色在每一次输入请求时随机变化。
现有的数字认证码形式比较单一,不能完全适应网络的发展,特别是保证防止网络中网页串改及恶意注册的需要。
发明内容
本发明要解决的技术问题是提供一种图片验证码实现方法,它可以防止页面被恶意程序攻击并进行恶意注册,增强密码破解的难度,增强安全认证的可靠性。
为解决上述技术问题,本发明图片验证码实现方法,在用户每一次请求的时候,***从已经存在的大量图片列表中随机取出N(N≥4)张不完全重复的图片,把N张图片的序号和名称放入用户会话中,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中,以便用户验证使用;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2,并把该图片的名称和序号保存在用户会话中;用户在使用曾选择的图片作为图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示;
所述将随机取出的N张图片组合成为一张图片的方法是,首先,在***图片库中放置大量的图片,用户点击输入验证码的窗口时,由***在像素范围内为每张图片随机寻找N个不同的位置,作为N张图片的显示位置,并把这N个位置的坐标保存在用户会话中;然后,按照图片的序号和位置把N张图片合成一张图片;
使用图片验证码进行验证的过程是:生成的图片验证码作为页面中Form的提交按钮,用户按照页面的提示点击验证码图片上的相应图片;然后页面提交到服务器,在服务器端获取用户点击图片的坐标;根据生成图片的位置,把从客户端获取的用户点击的位置换算成每个图片的坐标体系,然后遍历保存在用户会话中的每个图片的二维矩阵;如果该坐标落在***制定要选择的图片有效像素的范围内,并且该坐标上没有图片重叠的话,就认为用户选择正确;如果该坐标上有图片重叠,则显示在最外层,也就是图片序号最大的图片是***指定用户要选择的图片,也认为用户选择是正确的;否则认为用户选择是错误的。
由于采用本发明的方法,采用图片形式作为认证码输入的形式,通过大量的图片,类似的颜色,随机的位置和图片来加强被破解的难度。这样既克服了数字认证码形式比较单一的不足,又有利于保证防止网页被恶意程序攻击等。
采用0~9这10个数字组合成的验证码,网页设计中的普通脚本即可读到字符串形式的数字。本发明提出的图片验证码的形式,其安全性非常高,如果恶意攻击者想按照以前数字验证的模式进行破解,必须要解决“如何提取图片中的验证“这一问题。本发明有效地利用了图片验证中的复杂及防破解难度大这一特点,保证了例如网络注册等恶意攻击上的安全性。
具体实施方式
本发明图片验证码实现方法,是一种使用N(N≥4)张随机图片进行认证的密码认证方法。
首先,在***图片库中放置大量的图片,用户点击输入验证码的窗口时,由***在像素的范围内(例如,96*96像素)为每张图片随机寻找N个不同的位置,作为N张图片的显示位置,并把这N个位置的坐标保存在用户会话中。然后按照图片的序号和位置把N张图片生成一张图片。通过一个web页面把该图片显示到用户的浏览器中。同时把用户要选择的图片名称也显示到用户浏览器中。
在用户每一次请求的时候,从N张已经存在的图片中随机取M张图片作为验证图片中用户选择的图片(即图片验证码),并把该图片验证码的名称和序号保存在用户会话中。其中,1≤M≤N/2。
生成的图片验证码作为页面中Form(表单)的提交按钮,用户按照页面的提示点击验证码图片上的相应图片。然后页面提交到服务器,在服务器端获取用户点击图片的坐标。根据所述的生成图片的位置,把从客户端获取的用户点击的位置换算成每个图片的坐标体系,然后遍历保存在用户会话中的每个图片的二维矩阵。如果该坐标落在***制定要选择的图片有效像素的范围内,并且该坐标上没有图片重叠的话,就认为用户选择正确;如果该坐标上有图片重叠,则显示在最外层,也就是图片序号最大的图片是***指定用户要选择的图片,也认为用户选择是正确的;否则认为用户选择是错误的。验证完成后,把用户该次的会话信息清除。
生成的验证图片是带有Alpha通道(设置数字图像透明度)的PNG(Portable Network Graphics一种图像格式)矢量透明图片。在进行图片透底处理的时候不会留下黑边,图片大小为48*48像素。
作为验证码的图片采用颜色接近,甚至是相同的大量的图片,能有效限制程序破解者通过颜色来破译认证程序,同时N幅图片的放置是重叠的,重叠的程度是随机的,使得破解者无法得到一个完整的图片轮廓,增强了防破解的难度。
本发明的图片验证码与目前使用的数字及符号验证码比较,其输入方式采用直接点击选择,不需要输入文字或符号信息,简捷、实用,防破解功能强,适用于各种需要认证码的环境。
Claims (5)
1、一种图片验证码实现方法,其特征在于:在用户每一次请求的时候,***从已经存在的大量图片列表中随机取出N张不完全重复的图片,其中,N≥4;把N张图片的序号和名称放入用户会话中,并将图片有效像素的分布保存在一个二维矩阵中,组合成为一张图片作为验证图片显示在对话框中,以便用户验证使用;从N张已经存在的图片中随机选取M张图片作为验证图片中用户选择的图片,其中,1≤M≤N/2,并把该用户选择的图片的名称和序号保存在用户会话中;用户在使用曾选择的图片作为图片验证码进行验证过程中,如果从页面中显示的N张图片选中图片验证码,则验证通过,如果点击错误,则对话窗口出现输入验证码错误的信息提示;
所述将随机取出的N张图片组合成为一张图片的方法是,首先,在***图片库中放置大量的图片,用户点击输入验证码的窗口时,由***在像素范围内为每张图片随机寻找N个不同的位置,作为N张图片的显示位置,并把这N个位置的坐标保存在用户会话中;然后,按照图片的序号和位置把N张图片合成一张图片;
使用图片验证码进行验证的过程是:生成的图片验证码作为页面中Form的提交按钮,用户按照页面的提示点击验证码图片上的相应图片;然后页面提交到服务器,在服务器端获取用户点击图片的坐标;根据生成图片的位置,把从客户端获取的用户点击的位置换算成每个图片的坐标体系,然后遍历保存在用户会话中的每个图片的二维矩阵;如果该坐标落在***制定要选择的图片有效像素的范围内,并且该坐标上没有图片重叠的话,就认为用户选择正确;如果该坐标上有图片重叠,则显示在最外层,也就是图片序号最大的图片是***指定用户要选择的图片,也认为用户选择是正确的;否则认为用户选择是错误的。
2、根据权利要求1所述的图片验证码实现方法,其特征在于:所述由N张图片生成的一张图片通过一个web页面显示到用户的浏览器中,同时把用户要选择的图片名称也显示到用户浏览器中。
3、根据权利要求1或2所述的图片验证码实现方法,其特征在于:使用图片验证码验证完成后,把用户该次的会话信息清除。
4、根据权利要求1或2所述的图片验证码实现方法,其特征在于:生成的验证图片是带有Alpha通道的PNG矢量透明图片。
5、根据权利要求1或2所述的图片验证码实现方法,其特征在于:生成的验证图片采用颜色接近或相同的大量的图片,同时N幅图片的放置是重叠的,重叠的程度是随机的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510111902A CN100576794C (zh) | 2005-12-23 | 2005-12-23 | 图片验证码的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510111902A CN100576794C (zh) | 2005-12-23 | 2005-12-23 | 图片验证码的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1988442A CN1988442A (zh) | 2007-06-27 |
CN100576794C true CN100576794C (zh) | 2009-12-30 |
Family
ID=38185086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510111902A Expired - Fee Related CN100576794C (zh) | 2005-12-23 | 2005-12-23 | 图片验证码的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100576794C (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178813B (zh) * | 2007-12-19 | 2010-04-14 | 腾讯科技(深圳)有限公司 | 一种图片验证码的生成方法和装置 |
CN101183463B (zh) * | 2007-12-19 | 2010-06-09 | 腾讯科技(深圳)有限公司 | 一种图片验证码的生成方法和装置 |
CN101197678B (zh) * | 2007-12-27 | 2011-04-06 | 腾讯科技(深圳)有限公司 | 图片验证码生成方法和图片验证码生成装置 |
CN102075507A (zh) * | 2010-07-30 | 2011-05-25 | 百度在线网络技术(北京)有限公司 | 一种用于基于词句验证图进行用户验证的方法与设备 |
CN103106361A (zh) * | 2011-11-15 | 2013-05-15 | 北京新媒传信科技有限公司 | 一种增强图片验证码安全性的方法和装置 |
CN102624705B (zh) * | 2012-02-21 | 2015-09-30 | 西南石油大学 | 一种智能图像验证方法及*** |
US8973095B2 (en) * | 2012-06-25 | 2015-03-03 | Intel Corporation | Authenticating a user of a system via an authentication image mechanism |
CN104378329B (zh) * | 2013-08-13 | 2018-08-07 | 深圳市腾讯计算机***有限公司 | 安全验证的方法、装置及*** |
CN104657653B (zh) * | 2013-11-19 | 2017-12-22 | 博雅网络游戏开发(深圳)有限公司 | 图像验证码的验证方法及验证装置 |
CN103957608B (zh) * | 2014-05-12 | 2018-10-19 | 罗建平 | 一种多屏互动设备配对连接方法 |
CN104618350B (zh) * | 2015-01-15 | 2018-03-16 | 湘潭大学 | 一种图片验证码的生成方法 |
CN106156595B (zh) * | 2015-04-02 | 2020-04-07 | 深圳市腾讯计算机***有限公司 | 一种通过验证码图片进行验证的方法、装置及*** |
US10630675B2 (en) * | 2016-04-14 | 2020-04-21 | Microsoft Technology Licensing, Llc | Generating web service picture passwords with user-specific cypher keys |
CN107453876A (zh) * | 2017-08-02 | 2017-12-08 | 微梦创科网络科技(中国)有限公司 | 一种基于图片的验证码实现方法及装置 |
CN108390862B (zh) * | 2018-01-29 | 2021-04-27 | 丹露成都网络技术有限公司 | 一种基于图片数据加密索引的图形验证方法 |
-
2005
- 2005-12-23 CN CN200510111902A patent/CN100576794C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1988442A (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100576794C (zh) | 图片验证码的实现方法 | |
CN1980126A (zh) | 图片验证码的实现方法 | |
US8453221B2 (en) | Method for improving security in login and single sign-on procedures | |
CN101601222B (zh) | 在线数据加密和解密 | |
JP5133248B2 (ja) | クライアント/サーバー認証システムにおけるオフライン認証方法 | |
US8176332B2 (en) | Computer security using visual authentication | |
US8150034B2 (en) | Method and system for transmitting data from a first data processing device to a second data processing device | |
CN106100848B (zh) | 基于智能手机和用户口令的双因子身份认证***及方法 | |
CN106230594B (zh) | 一种基于动态口令进行用户认证的方法 | |
CN102105920A (zh) | 用于确保通信会话的方法和*** | |
US20140359299A1 (en) | Method for Determination of User's Identity | |
CN107835160A (zh) | 基于二维码的第三方用户认证方法 | |
CN106357629A (zh) | 基于数字证书的智能终端身份认证与单点登录***及方法 | |
CN111143812B (zh) | 一种基于图形的登陆认证方法 | |
US7966649B1 (en) | System and method for login resistant to compromise | |
CN105763536A (zh) | 基于动态图形密码的网络注册方法及*** | |
CN106997432A (zh) | 图片密码认证方法和图片密码认证装置 | |
CN103532979A (zh) | CGI web界面下的多会话验证码的产生及验证方法 | |
Xu et al. | SDD: A trusted display of FIDO2 transaction confirmation without trusted execution environment | |
CN107844290A (zh) | 基于数据流安全威胁分析的软件产品设计方法及装置 | |
JP7227444B2 (ja) | ランダムドットパターンcaptchaを用いたアクセス認証方法 | |
Wells et al. | Enhanced Security for Preventing Man-in-the-Middle Attacks in Authentication, DataEntry and Transaction Verification | |
KR101178828B1 (ko) | 문맥 기반의 캡차를 이용한 인터넷 계좌 이체 방법 | |
CN102082778B (zh) | 身份认证方法、装置及*** | |
KR101170822B1 (ko) | 다양한 비밀퍼즐을 이용한 승인 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091230 Termination date: 20131223 |