原理概念
1.画板 纸
2.准备画笔
3.准备一些数据,随机从数组中获取4个
4.通过画笔把获取到的数据画到画板上
5.生成一张真正的图片
作用
1.过分注册或者登录
2.判断是否电脑操作
示例
验证码测试类
//验证码实例
@Test
public void captcha() throws IOException {
for (int i = 0; i < 10; i++) {
String verifyCode = VerifyCodeUtilsTest.genrateVerifyCodes(4);
BufferedImage image = VerifyCodeUtilsTest.outputStream(135, 40, verifyCode);
ImageIO.write(image,"jpg", new File("D:\\Space\\IdeaWorkspace\\image\\ning" + i + ".jpg"));
}
}
生成验证码工具类
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Random;
/**
* @outher ningzp
* @date 2022-03-14
*/
public class VerifyCodeUtilsTest {
//提供字符
public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
//提供加密安全生成伪随机数对象
private static Random random;
static {
try {
random = SecureRandom.getInstanceStrong();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
//系统默认生成字符串
public static String genrateVerifyCodes(int verifySize) {
return genrateVerifyCodes(verifySize,VERIFY_CODES);
}
//指定参数生成字符串
public static String genrateVerifyCodes(int verifySize,String VerifyCode){
/*StringBuilder是一个可变的字符序列,如有使用单个