Warning
|
kaptcha |
JDK 25
<dependency> <groupId>com.heanbian</groupId> <artifactId>kaptcha</artifactId> <version>2025.5</version> </dependency>
@Configuration public class KcaptchaConfig { @Bean DefaultKaptcha defaultKaptcha() { Properties p = new Properties(11); p.setProperty(Constants.KAPTCHA_BORDER, "no"); p.setProperty(Constants.KAPTCHA_IMAGE_WIDTH, "200"); p.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT, "40"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "6"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES, "宋体"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "2345678abcehmkx"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "4"); p.setProperty(Constants.KAPTCHA_TEXTPRODUCER_IMPL, "com.google.code.kaptcha.text.impl.TextProducer456"); p.setProperty(Constants.KAPTCHA_BACKGROUND_CLR_FROM, "white"); p.setProperty(Constants.KAPTCHA_BACKGROUND_CLR_TO, "white"); DefaultKaptcha dk = new DefaultKaptcha(); dk.setKaptchaConfig(new KaptchaConfig(p)); return dk; } }
// 文本 String captchaText = captchaProducer.createText(); BufferedImage image = captchaProducer.createImage(captchaText); try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { ImageIO.write(image, "png", out); String captchaImg = Base64.getEncoder().encodeToString(out.toByteArray()); System.out.println(captchaImg); } // 算术 ArithmeticTextProducer producer = new ArithmeticTextProducer(); System.out.println(producer.getText()); // 输出如 "56 × 24 = ?" System.out.println("答案:" + producer.getAnswer()); // 输出对应计算结果