java 验证码分割_java验证码Captcha

importjava.awt.Color;importjava.io.IOException;importjava.util.Random;importjavax.servlet.http.HttpServletResponse;importorg.patchca.color.ColorFactory;importorg.patchca.filter.predefined.CurvesRippleFilterFactory;importorg.patchca.filter.predefined.DiffuseRippleFilterFactory;importorg.patchca.filter.predefined.DoubleRippleFilterFactory;importorg.patchca.filter.predefined.MarbleRippleFilterFactory;importorg.patchca.filter.predefined.WobbleRippleFilterFactory;importorg.patchca.service.ConfigurableCaptchaService;importorg.patchca.utils.encoder.EncoderHelper;importorg.patchca.word.RandomWordFactory;public classCaptchaUtil {private static ConfigurableCaptchaService cs = newConfigurableCaptchaService();private static Random random = newRandom();static{

cs.setColorFactory(newColorFactory() {

@Overridepublic Color getColor(intx) {int[] c = new int[3];int i =random.nextInt(c.length);for (int fi = 0; fi < c.length; fi++) {if (fi ==i) {

c[fi]= random.nextInt(71);

}else{

c[fi]= random.nextInt(256);

}

}return new Color(c[0], c[1], c[2]);

}

});

RandomWordFactory wf= newRandomWordFactory();

wf.setCharacters("23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIGKLMNPQRSTUVWXYZ");

wf.setMaxLength(4);

wf.setMinLength(4);

cs.setWordFactory(wf);

}public static String generate(HttpServletResponse response) throwsIOException{switch (random.nextInt(5)) {case 0:

cs.setFilterFactory(newCurvesRippleFilterFactory(cs.getColorFactory()));break;case 1:

cs.setFilterFactory(newMarbleRippleFilterFactory());break;case 2:

cs.setFilterFactory(newDoubleRippleFilterFactory());break;case 3:

cs.setFilterFactory(newWobbleRippleFilterFactory());break;case 4:

cs.setFilterFactory(newDiffuseRippleFilterFactory());break;

}

setResponseHeaders(response);return EncoderHelper.getChallangeAndWriteImage(cs, "png", response.getOutputStream());

}private static voidsetResponseHeaders(HttpServletResponse response) {

response.setContentType("image/png");

response.setHeader("Cache-Control", "no-cache, no-store");

response.setHeader("Pragma", "no-cache");long time =System.currentTimeMillis();

response.setDateHeader("Last-Modified", time);

response.setDateHeader("Date", time);

response.setDateHeader("Expires", time);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值