java如何生成登录随机验证码
本文实例为大家分享了java生成登录随机验证码的具体代码,供大家参考,具体内容如下
验证码工具类:VerifyUtil.java
importjava.awt.*; importjava.awt.image.BufferedImage; importjava.util.HashMap; importjava.util.Map; importjava.util.Random; publicclassVerifyUtil{ //验证码字符集 privatestaticfinalchar[]CHARS={ '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n', 'o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N', 'O','P','Q','R','S','T','U','V','W','X','Y','Z'}; //字符数量 privatestaticfinalintSIZE=4; //干扰线数量 privatestaticfinalintLINES=5; //宽度 privatestaticfinalintWIDTH=80; //高度 privatestaticfinalintHEIGHT=40; //字体大小 privatestaticfinalintFONT_SIZE=30; /** *生成随机验证码及图片 */ publicstaticMapcreateImage(){ StringBuffersb=newStringBuffer(); //1.创建空白图片 BufferedImageimage=newBufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_INT_RGB); //2.获取图片画笔 Graphicsgraphic=image.getGraphics(); //3.设置画笔颜色 graphic.setColor(Color.LIGHT_GRAY); //4.绘制矩形背景 graphic.fillRect(0,0,WIDTH,HEIGHT); //5.画随机字符 Randomran=newRandom(); for(inti=0;i map=newHashMap<>(); //验证码 map.put("code",sb.toString()); //图片 map.put("image",image); returnmap; } /** *随机取色 */ publicstaticColorgetRandomColor(){ Randomran=newRandom(); returnnewColor(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256)); } }
获取验证码
@GetMapping("/verify-code") publicvoidgetCode(HttpServletResponseresponse)throwsException{ Mapmap=VerifyUtil.createImage(); //将图片输出给浏览器 BufferedImageimage=(BufferedImage)map.get("image"); response.setContentType("image/png"); OutputStreamos=response.getOutputStream(); ImageIO.write(image,"png",os); }
页面
获取验证码 点击图片切换验证码