随机生成4位验证码,将生成的4位数字字母数字放入session

private static void outputVerifyCode(HttpServletRequest request,
HttpServletResponse response) throws Exception {
BufferedImage img = new BufferedImage(68, 22, 1); Graphics g = img.getGraphics();
Random r = new Random();
Color c = new Color(200, 150, 255);
g.setColor(c); g.fillRect(0, 0, 68, 22); StringBuffer sb = new StringBuffer();
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
int len = ch.length; for (int i = 0; i < 4; i++) {
int index = r.nextInt(len);
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
g.setFont(new Font("Arial", 2, 22));
g.drawString(String.valueOf(ch[index]), i * 15 + 3, 18);
sb.append(ch[index]);
}
request.getSession().setAttribute("verifypic", sb);
ImageIO.write(img, "JPG", response.getOutputStream());
}

比对将登录提交的验证码和session里的验证码同时转为小写并比较

private boolean chekcVerifycode(String inputStr, String correctStr) {
return inputStr.toLowerCase().equals(correctStr.toLowerCase());
}

最新文章

  1. Configure a VLAN (on top of a bond) with NetworkManager (nmcli) in RHEL7
  2. [转]Meta http-equiv属性详解
  3. Atitit 订单处理原理与功能设计attilax总结
  4. Java并发包中CountDownLatch的工作原理、使用示例
  5. (转载)在Delphi中利用MSDASC来配置数据库链接
  6. php 解决乱码的通用方法
  7. iOS高效开源类库
  8. 用python调用R做数据分析-准备工作
  9. Android 4.0新组件:GridLayout详细说明
  10. Tensorflow学习笔记---0--TensorBoard
  11. Go语言备忘录:基本数据结构
  12. IOS开发之XCode学习008:UIViewController基础
  13. 那些优秀的.NET开发者----汪宇杰:从重视细节,到成就技术专家
  14. Spark算子代码实践
  15. sql server 横向转丛向及FOR XML PATH使用
  16. [C#] VS2017中在某些目录下使用不了 .NET Core 2.0 问题的处理办法
  17. less点滴
  18. BZOJ3718[PA2014]Parking——树状数组
  19. 进程池的map方法
  20. ELK应用之二:Kibana显示Nginx中来访客户端IP地域分布

热门文章

  1. 十大算法 pagerank 傅里叶变换
  2. MySql Error 2006
  3. Cookies与保持登录(新浪微博的简单模拟登录)
  4. C#BASE64 UTF8字符串加密解密
  5. [原创]浅谈NT下Ring3无驱进入Ring0的方法
  6. javascript学习笔记(1) 简单html语法
  7. J2SE知识点摘记(二十一)
  8. enumerate小技巧和列表推导式
  9. Data Visualization 课程 笔记2
  10. 【Android进阶学习】shape和selector的结合使用