验证码工具 - CaptchaUtil

由来

图形验证码是 Web 应用中常见的安全措施。CaptchaUtil 基于 Pillow 提供了验证码生成功能。

使用

from hutool import CaptchaUtil

# 创建文字验证码
captcha = CaptchaUtil.create_line_captcha(width=200, height=80, code_count=5)
code = captcha.create_code()  # 生成验证码文本
captcha.verify(code)  # True
captcha.verify("wrong")  # False

# 保存为文件
captcha.write("/path/to/captcha.png")

# 获取字节
image_bytes = captcha.get_image_bytes(format="png")

验证码类型

线条干扰验证码

captcha = CaptchaUtil.create_line_captcha(
    width=200,
    height=80,
    code_count=5,  # 字符数
    line_count=50,  # 干扰线条数
)

圆形干扰验证码

captcha = CaptchaUtil.create_circle_captcha(
    width=200,
    height=80,
    code_count=5,
    circle_count=20,  # 干扰圆圈数
)

扭曲验证码

captcha = CaptchaUtil.create_shear_captcha(width=200, height=80, code_count=5)

算术验证码

captcha = CaptchaUtil.create_arithmetic_captcha(width=200, height=80)
code = captcha.create_code()  # 生成算式,如 "3+5=?"
result = captcha.get_result()  # 获取结果,如 "8"