验证码 使用

简介:    下载区 有jar 包   com.github.bingoohuang patchca 0.0.1       验证码 使用   看不清,换一张?     ...

 

 下载区 有jar 包

 

	<dependency>
			<groupId>com.github.bingoohuang</groupId>
			<artifactId>patchca</artifactId>
			<version>0.0.1</version>
	</dependency>

 

 

 

验证码 使用

 

<div class="login_code_pic">
	 <a href="javascript:void(0)">
		 <img src="images/code_demo.png"	id="loginCode" onclick="refreshCode('login');" />
	 </a>
	 </div>
	 <div class="login_code_text">
		 <a href="javascript:void(0)" onclick="refreshCode('login');" >看不清,换一张?</a>
	 </div>
 </div>

 

 

 

function refreshCode(imgName) {
	var date = new Date();
	try {
		if (imgName == "login") {
			$("#loginCode").attr(
					"src",
					"userAction_refreshPatchcaImage.html?time="
					+ date.getTime());
		} else {
			$("#patchaImage").attr(
					"src",
					"userAction_refreshPatchcaImage.html?time="
					+ date.getTime());
		}
	} catch (e) {
		alert("验证码刷新超时,请重新刷新界面!");
		window.location.reload();
	}
}

  

 

private static final String  DEFAULT_CHARACTERS="34578AaCcdEeFGHhJjKkMmNnPpQRsTtUuVvWwXxYy";

private static final String PATCHCACODE = "PATCHCA"; 



public void refreshPatchcaImage() throws Exception {
		HttpServletResponse response = null;
		HttpServletRequest request = null;
		request = ServletActionContext.getRequest();
		response = ServletActionContext.getResponse();
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=UTF-8");
		response.setContentType("image/png");//设置相应类型,告诉浏览器输出的内容为图片        
		response.setHeader("Pragma", "No-cache");//设置响应头信息,告诉浏览器不要缓存此内容        
		response.setHeader("Cache-Control", "no-cache");        
		response.setDateHeader("Expire", 0);
		OutputStream os=null;
		try{
			//创建图片对象服务
			ConfigurableCaptchaService cs = new ConfigurableCaptchaService();
			//修改图片文字颜色
			cs.setColorFactory(new SingleColorFactory(new Color(0, 0, 0)));
			//创建图片文字对象
			RandomWordFactory randomWordFactory = new RandomWordFactory();
			//设置文字对象范围
			randomWordFactory.setCharacters(DEFAULT_CHARACTERS);
			//设置图片文字最大长度
			randomWordFactory.setMaxLength(4);
			//设置图片文字最小长度
			randomWordFactory.setMinLength(4);
			//设置图片文字属性
			cs.setWordFactory(randomWordFactory);
			//设置图片的干扰效果的样式..一共有五种
			cs.setFilterFactory(new WobbleRippleFilterFactory ());
			Captcha captcha = cs.getCaptcha();
			//将四位数字的验证码保存到Session中。
			request.getSession().setAttribute(PATCHCACODE, captcha.getChallenge());
			//将图像输出到Servlet输出流中
			os=response.getOutputStream();
			ImageIO.write(captcha.getImage(), "png", os);
			os.flush();
			//关闭输出流
		}catch (Exception e) {
			e.printStackTrace();
			/*PrintWriter writer = response.getWriter();
			writer.print(false);
			writer.flush();
			writer.close();*/
			//log.error("生成验证码错误!......." + e);
		}finally{
			if(null!=os){
				os.close();
			}
		}
		
	}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

目录
相关文章
|
6月前
|
C++
|
6月前
生成验证码
生成验证码
39 0
|
缓存 前端开发 NoSQL
南南的文章-验证码还能这样生成?
南南的文章-验证码还能这样生成?
85 0
南南的文章-验证码还能这样生成?
|
缓存 JavaScript 安全
|
机器学习/深度学习 人工智能 前端开发
关于验证码,你不知道的一些问题!
关于验证码,大家也许会有很多疑问,下面我总结了一些常见问题。
关于验证码,你不知道的一些问题!
|
前端开发 C# 数据安全/隐私保护
C#验证码
验证码通常是为了区分用户是人还是计算机,也可以防止破解密码、刷票等恶意行为,而客户端上多数会用在关键操作上,比如购买、登录、注册等场景。现在验证码的种类样式也特别多,今天教大家如何用C#做出滑动拼图验证码吧~
C#验证码
|
Web App开发 Java
|
C# 图形学 索引