怎么样通过java代码得到页面上的验证码

那我应该怎么样得到这个图片了。然后解析了... 那我应该怎么样得到这个图片了。然后解析 了 展开
 我来答
xiliantian
2009-01-04 · TA获得超过1849个赞
知道大有可为答主
回答量:648
采纳率:0%
帮助的人:887万
展开全部
具体的倒没做过,不过原理应该差不多,不过不会简单,一句两句是将不清楚的,呵呵
基本原理是这样的,这个图片在IE的缓存文件夹Local Settings\Temporary Internet Files中一定会有一个对应的固定名称的图片,每次这个图片文件名称是一样的,只是里面的内容不一样,你可以找一下看看,呵呵,下面就简单了吧,不过,前提是这个页面你要在浏览器加载过,这样才能形成缓存文件。

你点这些分,我就说这么多了~
===================================================
呵呵,你这个不好解决,是不是想搞自动注册呢?
人家验证码明显是不会在客户端产生的,这个是保存在服务端的,那你如何得到呢?客户端得到的只是一个图片而已,方法也有,就是你把这个图片得到,动态解析,从这个图片的解析中获取它所表示的内容,这个难度有点大的,图片解析难度比较高的,如果再加一些干扰,呵呵,基本能解出来的不是高手也差不多了。
所以,你的这个问题本身比较难实现,验证码使用的目的就是为了防止自动注册,而且这个注册码本身是不会传递到客户端的,所以,你要获取的可能性很小。
xc_jetguo
推荐于2016-07-01 · TA获得超过596个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:281万
展开全部
<%@ page contentType="image/png" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %><%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

int width=40; //设置图片宽度
int height=20; //设置图片高度

//创建缓存图象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Graphics g = image.getGraphics(); //获取图形

g.setColor(new Color(000, 102, 153)); //设置背景色
g.fillRect(0, 0, width, height); //填充背景

g.setColor(new Color(000, 000, 000)); //设置边框颜色
g.drawRect(0, 0, width-1, height-1); //绘制边框

g.setFont(new Font("Arial", Font.PLAIN, 16)); //设定字体

Random random = new Random(); //生成随机类

//随机产生3位数字验证码
StringBuffer sbRan = new StringBuffer(); //保存验证码文本
for (int i=0; i<3; i++){
String ranNum = String.valueOf(random.nextInt(10));
sbRan.append(ranNum);
//将验证码绘制到图象中
g.setColor(new Color(255, 255, 255));
g.drawString(ranNum, 10 * i + 5, 16);
}

g.dispose(); //部署图象

session.setAttribute("_CODE_", sbRan.toString()); //将验证码保存在session对象中供对比

ImageIO.write(image, "PNG", response.getOutputStream()); //输出图象到页面

%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式