验证码的生成主要是数字与字母的组合,要么就是图片加数字与字母的组合,还有就是滑块验证等。
本编文章主要是介绍最简单的验证码的生成(数字与字母组合)
首先可以定义一个方法用于随机生成字母和数字,
具体实现
1.定义一个字符串里面包含A-Z字母和1-9数字
2.使用random生成随机对象
3.返回随机字符的长度
代码实现
/** * 此方法用户产生随机字母和数字 * @return */ private static char randomChar(){ //1.定义验证需要的字母和数字 String string = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789"; //2.定义随即对象 Random random = new Random(); return string.charAt(random.nextInt(string.length())); }
然后创建验证生成的方法
具体实现
1.定义以字符串拼接的StringBuilder对象
2.遍历循环生成的字符
3.使用toString方法输出
代码实现
/** * 验证生成的方法 * @param response * @return */ public static String drawImage(HttpServletResponse response){ //1.定义以字符串的拼接的StringBuilder StringBuilder builder = new StringBuilder(); for (int i=0;i<4;i++){ builder.append(randomChar()); } String code = builder.toString(); System.out.println(code); return null; }
最后测试一下
public static void main(String[] args) { CaptcahCode.drawImage(null); }
测试结果:
每次测试的结果都会不一样,这样一个小小的验证码生成就完成了。
拓展一下:可以在定义的字符串中添加先写字母a-z,这样可以使验证码更安全是不是。