- 浏览: 77978 次
- 性别:
- 来自: 上海
最新评论
-
latent:
我 Ctrl + H 怎么查呀? 求解呀
eclipse中搜索替换所有中文字符 -
marc0658:
匹配特定数字:^[1-9]\d*$ ...
常用正则 -
marc0658:
匹配中文字符的正则表 ...
常用正则 -
marc0658:
1。^\d+$ //匹配非负整数(正整数 + 0) 2。^[ ...
常用正则 -
leejon:
appserv/
一路上next,一分钟搞定apache+ph ...
apache_2.2.14+php-5.2.11+mysql5.0.18
http://my.oschina.net/jawava/blog/8574
发现这个社区不错,所以也凑个热闹。
第一篇日志,一定要动手写才有诚意。
这两天要给刚做的外网系统登录页面加验证码,以前没做过。上网搜了一下,资料很多。 验证码校验称作captcha: Completely Automated Public Test to tell Computers and Humans Apart 专业点儿的翻译是:全自动区分计算机和人类的图灵测试。 CAPTCHA的目的很明确,就是区分计算机和人类的一种程序算法, 这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试。 网上能查到不少实现方案,简单的写个jsp就行了,技术含量不高。搜了一圈后, 感觉还是用个正规点儿比较合适,然后就锁定了JCaptcha,到其官方网站上看了看: http://jcaptcha.octo.com/confluence/display/general/Home JCaptcha提供了 Provide robust and reliable CAPTCHA implementation framework for JAVA Provide accessible CAPTCHA implementations Provide multi-type challenge (text, sound, image) 它用上百个类来实现了如此简单的功能,这是为什么呢?官方给的解释是 1、学术界能不断的发明(或发现)一些人类容易处理而机器不能很好处理的问题。 JCaptcha高屋建瓴的给出了一种通用的定义和表达这种问题并用于识别的方案。 也就是识别方案的可扩展性。 2、实现了若干引擎和组件,通过配置这些引擎和组件,可以方便的修改自己程序 captcha构件的算法。这样,在抵御恶意访问时,可以不用改变代码,灵活快速的 改变captcha策略,从而更好的保护系统。 个人觉的说的挺好,第一点对于我们来说倒是次要的,主要第二点比较有意义。 然后就试了试。下面是具体需要做的工作: 一,从官网上下个jcaptcha-1.0-all.jar,加入到项目中, 官方的2.0还没有正式版,所以先用1.0吧。 二,官网上介绍了几种和项目结合的具体方案,最简单的方式很快走通,图片很难看, 而且不具有可配置性,肯定不行。所以选择通过spring来整合的方式, spring是整合和配置的平台,把jcaptcha的服务和引擎还有组件配置成spring的bean。 示例如下:
这里面具体用哪个component,需要看ApI,我把包里提供的现成的组件基本上试了大半, 最后选择了如上的配置,选择的标准一是美观,二是识别率。识别率太低了,用户体验会下降。 三、配置好后,JCaptcha这边的工作就完成了。下面就是和项目的结合。 1、首先专门写个CaptcahServlet用来获取验证码,由于要在servlet里注入spring的bean, 所以用了代理的方式。代理类网上有,都是固定写法,这里就不贴了。 CaptcahServlet主要部分如下:
然后在web.xml配置:
2、目前项目的登录页面是jsp,结合很方便,在原有页面上加上 <img src="/topJcaptcha" /> <input type="text" name="jcaptcha" value="" /> 那个img就是校验码。 需要的话,再加上个换图片的功能,很简单。 3、验证环节。我是在原来的验证用户密码的逻辑前,加上了验证码的校验逻辑。 很简单的几句话,代码如下:
四、如此就可以测试了。通过反复调整参数,达到了比较美观的效果,但是文字始终 不在图片的正中,而是靠上,甚至都把文字掩盖了一半。翻看了半天API,也看不出 个端倪。只好去翻源代码了。问题出在 com.octo.captcha.component.image.textpaster.SimpleTextPaster这个类,它把文字 图片往背景图片放时,把文字的位置放在了背景图片一半的高度上,这就是问题所在。 修改代码重新打了个jar包。替换一下,重启后一切ok。 |
发表评论
-
oracle10g for linux
2013-01-13 22:01 1008Oracle Database 10g Release 2 ( ... -
ORA-12519: TNS:no appropriate service handler found
2013-01-08 09:17 770from http://blog.163.com/kan ... -
jfreechart中文乱码
2012-12-29 09:40 772看看API,设置字体吧 /* 下面是设置曲线图图 ... -
访问局域网Oracle数据库
2012-12-02 17:58 850from http://blog.sina.com.c ... -
windows7开放80端口支持局域网访问apache
2012-12-01 16:52 796from http://www.2cto.com/os/ ... -
Win7下Eclipse中文字体太小
2012-10-23 09:49 718from http://www.cnblogs.com/ ... -
oracle order by
2012-09-05 10:09 773转载自: http://blog.csdn.net/w ... -
php wordpress upload_max_size
2012-08-23 13:33 717http://www.dwuser.com/easyr ... -
windows 快捷键大全 窗口最大化快捷键,最小化,重命名等
2012-08-17 14:36 922一直以来都很喜欢用windows的快捷键,但学电脑有五年 ... -
本地wordpress 固定链接
2012-08-14 18:07 699win 本地开发环境 固定链接结构不选用默认 ... -
Hibernate 参数设置一览表
2012-08-13 11:37 779转载:http://www.blogjava.net ... -
PLSQL中的&字符处理
2012-08-08 14:21 828转载:http://www.cnblogs.com/Rober ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2012-08-03 11:14 851转载:http://www.cnblogs.co ... -
非法字符:\65279 编码 GBK 的不可映射字符
2012-07-31 15:24 1229警告: 编码 GBK 的不可映射字符"怎么处 ... -
IE6 下 select 动态赋值
2012-07-17 14:25 813setTimeout(function(){ $ ... -
ie6 option innerHTML 关于select 的添加 option 应该注意的问题
2012-07-11 11:14 2258<script type="text/j ... -
jquery获得select option的值 和对select option的操作
2012-07-10 15:31 819jQuery获取Select元素,并选择的Text和Va ... -
Web app root system property already set to different value
2012-06-27 16:36 2182最近在搭建项目环境的时候出现了下面的错误 java.l ... -
fn:length
2012-06-27 15:28 788这个问题曾经也困扰了我好久,不过以后都没有用过也都忘记了 ... -
修改textfield的label
2012-06-15 15:47 750//id:number 下面parent()的个数要看你那个t ...
相关推荐
java通过JCaptcha生成验证码,支持原生的验证码生成、自定义干扰线、自定义背景图片。
在JSP下,用jcaptcha生成彩色验证码的案例。 主页http://jcaptcha.sourceforge.net/ 网上有很多例子,但有一点没说清楚,这个项目的jar包需要两个apache的项目包,一个是collections,还有一个是logging。 我做了...
这是一个基于acegi的jcaptcha的验证码例子,希望对正在学习的大家有所帮助
Jcaptcha彩色验证码实例(java) 运行环境:JDK1.5+ ,Tomcat 5.0+
security+jcaptcha(验证码)框架搭建
jcaptcha写验证码要用到的jar包,具体的jcaptcha写验证码的流程请参见:http://blog.csdn.net/qq_29656961/article/details/78153637
security+jcaptcha(验证码)+mybatis框架搭建
简单的验证码生成,是用是别人写好的框架,感觉还不错,简单易用
验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。验证码使用jcaptcha,发送邮件使用JEmail 基于SSM实现的注册登录系统。...
jcaptcha jcaptcha-1.0-all.jar 验证码 验证码例子 jcaptcha例子 servlet版的
使用jcaptcha实现CAS中的验证码功能
JcaptchaServlet、JcaptchaServlet验证码实例,是基本于Servlet编写的一个实例。供需要者下载,制作的一个captcha.jar包的实现。
jcaptcha做jsp彩色验证码,内有详细的使用方法
该要的都配置好了,即可调试,立马看到效果!彩色
springsecurity3和JCaptcha的整合 验证码
jcaptcha验证码,有前端和后端,可以直接拿来使用,导入就可以使用
由于网络安全问题威胁很大,不时有网警做端口扫描预警通知(建议改造的通知文件),迫于种种的网络安全压力,写这个后端生成工具。 源码使用方式参考文章【http://t.csdn.cn/eoj39】
使用最简方式使用了JCaptcha开源组件,非常适合学习
jcaptcha-2.0-alpha-1-SNAPSHOT.jar,jcaptcha-api-1.0.jar,jcaptcha-integration-simple-servlet-2.0-alpha-1-SNAPSHOT.jar
JCaptcha生成图形验证码以及校验