Class ImageVerification

java.lang.Object
tech.riemann.nif.web.captcha.ImageVerification

public class ImageVerification extends Object
图片验证码生成类

用于生成带有干扰线的验证码图片

主要功能: 1. 生成指定长度的验证码图片 2. 支持自定义验证码长度和生成器 3. 添加干扰线增加安全性 4. 使用随机颜色增强可读性

线程安全(H6 修复):验证码作为 creatImage() 的局部返回值 (VerificationImage)携带,不再存储在实例字段上——单例 Bean 并发调用时, 每次生成的结果彼此独立,杜绝"图片与验证码错位"。

验证码图片包含随机干扰线和随机位置的验证码字符

Author:
Kerbores(kerbores@riemann.tech)
  • Constructor Details

    • ImageVerification

      public ImageVerification()
      默认构造函数

      使用默认的验证码长度(4位)和默认的验证码生成器

    • ImageVerification

      public ImageVerification(int imageVerificationLength, CaptchaGener captchaGener)
      构造函数,使用指定的验证码长度和生成器
      Parameters:
      imageVerificationLength - 验证码长度
      captchaGener - 验证码生成器
    • ImageVerification

      public ImageVerification(int imageVerificationLength, CaptchaGener captchaGener, int interferenceLines)
      构造函数,使用指定的验证码长度、生成器和干扰线条数
      Parameters:
      imageVerificationLength - 验证码长度
      captchaGener - 验证码生成器
      interferenceLines - 干扰线条数
  • Method Details

    • setImageVerificationLength

      public void setImageVerificationLength(int imageVerificationLength)
      设置验证码长度
      Parameters:
      imageVerificationLength - 验证码长度
    • getInterferenceLines

      public int getInterferenceLines()
      获取干扰线条数
      Returns:
      干扰线条数
    • setInterferenceLines

      public void setInterferenceLines(int interferenceLines)
      设置干扰线条数
      Parameters:
      interferenceLines - 干扰线条数
    • creatImage

      public VerificationImage creatImage()
      创建验证码图片

      生成带有干扰线的验证码图片,验证码作为结果的一部分局部返回—— 每次调用生成独立的结果(图片 + 验证码),线程安全

      Returns:
      验证码生成结果(图片 + 验证码)
    • getRandColor

      public Color getRandColor(int b, int e)
      获取随机颜色

      在指定范围内生成随机颜色

      Parameters:
      b - 颜色的最小值(0-255)
      e - 颜色的最大值(0-255)
      Returns:
      生成的随机颜色
    • getRandInt

      public int getRandInt(int b, int e)
      获取随机整数

      在指定范围内生成随机整数

      Parameters:
      b - 最小值
      e - 最大值
      Returns:
      生成的随机整数
    • setCaptchaGener

      public void setCaptchaGener(CaptchaGener captchaGener)
      设置验证码生成器
      Parameters:
      captchaGener - 验证码生成器