| « | September 2026 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | |
| 公告 |
| 暂无公告... |
| Blog信息 |
|
blog名称: 日志总数:1 评论数量:1 留言数量:0 访问次数:15122 建立时间:2005年3月7日 |

| |
|
JSP/Servlet写验证码 文章收藏, 电脑与网络
enpro 发表于 2005/3/10 5:48:20 |
|
转自[天天的专栏] 现在好多网站都是通过动态的生成验证码来防止恶意注册,投票等,简单的分析了一下,大概的实现原理是这样的: 用一个JSP/Servlet来生成图像,可以用java.awt.image来实现:
500)this.width=500'>BufferedImage image = new BufferedImage(width, height,RGB);500)this.width=500'>Graphics g = image.getGraphics();500)this.width=500'>g.setFont(Font f);500)this.width=500'>g.drawString(num);
这样很容易的就生成了一个内存中的图像,注意,是在服务器的内寸中,要把它传送给客户端,就要把它作为response来传送:
500)this.width=500'>ImageIO.write(image, "JPEG", response.getOutputStream());
然后把验证码的字符串通过session来传递给需要验证验证码的网页就可以了 在需要显示验证码图像的地方加入:
500)this.width=500'><img src="image.jsp">
就可以了,不过最后也是最重要的一点就是一定要把下列语句加入到网页头部来防止浏览器会缓存网页:
500)this.width=500'><meta http-equiv="Content-Type" content="text/html; charset=gb2312">500)this.width=500'><META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 500)this.width=500'><META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 500)this.width=500'><META HTTP-EQUIV="Expires" CONTENT="0">
PS:这种验证码通常防止OCR要加入干扰,下面是转载的一段话: 干扰这样加是最有效的:随机渐变色(包括文字和背景)+所有可打印字符+字符大小随机变化+位置不固定+象素行或列随机错位。 |
|
|
Norton 诺顿全球第一杀毒软件 文章收藏, 电脑与网络
liuwei(游客)发表评论于2009/10/31 22:15:53 |
| <P><FONT color=#000000>Norton 诺顿 全球第一杀毒软件 使用用户超过5亿</FONT></P>
<P><FONT color=#000000>第三代反病毒软件,主动防杀未知木马和新病毒99%以上。赶快来订购吧!</FONT></P>
<P><FONT color=#810081><FONT color=#000000>诺顿序列号通过中国移动手机钱包支付,直接从话费中扣除,<BR>支付成功后序列号将直接发送到手机上,使用费十二元包月,<BR>订制完成后请立即安装软件,获得诺顿的上网安全保护</FONT><BR><A href="http://nptclick.nptcn.net.cn:9000/10/1045285">http://nptclick.nptcn.net.cn:9000/10/1045285</A></FONT></P>
<P><U><FONT color=#810081><A href="http://nptclick.nptcn.net.cn:9000/10/1045285"></A></FONT></U><A href="http://nptclick.nptcn.net.cn:9000/7/1045285"></A> </P> |
|
» 1 »
|