注册

这可能是开源界最好用的行为验证码工具





  • 💂 个人网站: IT知识小屋
  • 🤟 版权: 本文由【IT学习日记】原创、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦




写在前面


大家好,这里是IT学习日记。今日推荐项目:tianai-captcha行为验证码工具


1000+优质开源项目推荐进度:6/1000。如需更多类型优质项目推荐,请在文章后留言。


工具简介


tianai-captcha行为验证码工具:分为 Go 和 Java 两个版本。支持多种验证方式,包括随机验证、曲线匹配、滑块验证、增强版滑块验证、旋转验证、滑动还原、角度验证、刮刮乐、文字点选、图标点选及语序点选等。


行为验证码工具


该系统能够快速集成到个人项目或系统中,显著提高开发效率。


功能展示



  • 随机型验证码

随机型验证码



  • 曲线匹配验证码

曲线匹配验证码



  • 滑动验证增强版验证码

滑动验证增强版验证码



  • 滑块验证码

滑块验证码



  • 旋转验证码

image



  • 滑动还原验证码

滑动还原验证码



  • 角度验验证码

角度验验证码



  • 刮刮乐验验证码

刮刮乐验验证码



  • 文字点选验证码

文字点选验证码



  • 图标验证码

图标验证码


架构设计


tianai-captcha 验证码整体分为 生成器(ImageCaptchaGenerator)、校验器(ImageCaptchaValidator)、资源管理器(ImageCaptchaResourceManager) 其中生成器、校验器、资源管理器等都是基于接口模式实现可插拔的,可以替换为自定义实现,灵活度高



  • 生成器 (ImageCaptchaGenerator)

    主要负责生成行为验证码所需的图片。
  • 校验器 (ImageCaptchaValidator)

    主要负责校验用户滑动的行为轨迹是否合规。
  • 资源管理器 (ImageCaptchaResourceManager)

    主要负责读取验证码背景图片和模板图片等。

    • 资源存储 (ResourceStore)

      负责存储背景图和模板图。
    • 资源提供者 (ResourceProvider)

      负责将资源存储器中对应的资源转换为文件流。一般资源存储器中存储的是图片的 URL 地址或 ID,资源提供者则负责将 URL 或其他 ID 转换为真正的图片文件。


  • 图片转换器 (ImageTransform)

    主要负责将图片文件流转换成字符串类型,可以是 Base64 格式、URL 或其他加密格式,默认实现为 Base64 格式。

工具集成


引入依赖


<!-- maven 导入 -->
<dependency>
<groupId>cloud.tianai.captcha</groupId>
<artifactId>tianai-captcha</artifactId>
<version>1.4.1</version>
</dependency>



  • 使用 ImageCaptchaGenerator生成器生成验证码

public class Test {
public static void main(String[] args) throws InterruptedException {
ImageCaptchaResourceManager imageCaptchaResourceManager = new DefaultImageCaptchaResourceManager();
ImageTransform imageTransform = new Base64ImageTransform();
ImageCaptchaGenerator imageCaptchaGenerator = new MultiImageCaptchaGenerator(imageCaptchaResourceManager,imageTransform).init(true);
/*
生成滑块验证码图片, 可选项
SLIDER (滑块验证码)
ROTATE (旋转验证码)
CONCAT (滑动还原验证码)
WORD_IMAGE_CLICK (文字点选验证码)

更多验证码支持 详见 cloud.tianai.captcha.common.constant.CaptchaTypeConstant
*/
ImageCaptchaInfo imageCaptchaInfo = imageCaptchaGenerator.generateCaptchaImage(CaptchaTypeConstant.SLIDER);
System.out.println(imageCaptchaInfo);

// 负责计算一些数据存到缓存中,用于校验使用
// ImageCaptchaValidator负责校验用户滑动滑块是否正确和生成滑块的一些校验数据; 比如滑块到凹槽的百分比值
ImageCaptchaValidator imageCaptchaValidator = new BasicCaptchaTrackValidator();
// 这个map数据应该存到缓存中,校验的时候需要用到该数据
Map<String, Object> map = imageCaptchaValidator.generateImageCaptchaValidData(imageCaptchaInfo);
}
}



  • 使用ImageCaptchaValidator校验器 验证

public class Test2 {
public static void main(String[] args) {
BasicCaptchaTrackValidator sliderCaptchaValidator = new BasicCaptchaTrackValidator();

ImageCaptchaTrack imageCaptchaTrack = null;
Map<String, Object> map = null;
Float percentage = null;
// 用户传来的行为轨迹和进行校验
// - imageCaptchaTrack为前端传来的滑动轨迹数据
// - map 为生成验证码时缓存的map数据
boolean check = sliderCaptchaValidator.valid(imageCaptchaTrack, map).isSuccess();
// // 如果只想校验用户是否滑到指定凹槽即可,也可以使用
// // - 参数1 用户传来的百分比数据
// // - 参数2 生成滑块是真实的百分比数据
check = sliderCaptchaValidator.checkPercentage(0.2f, percentage);
}
}


工具获取


工具下载gitee.com/dromara/tia…


在线体验captcha.tianai.cloud/


如果这篇文章对您有帮助,请**“彦祖们”**一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。




作者:IT学习日记v
来源:juejin.cn/post/7391351326153965568

0 个评论

要回复文章请先登录注册