1.3k Star可能是开源界最好用的行为验证码工具
社区首页 >专栏 >1.3k Star可能是开源界最好用的行为验证码工具
可能是开源界最好用的行为验证码工具
一个低调的行为验证码 [滑块验证码、点选验证码、行为验证码、旋转验证码, 滑动验证码]。
验证码demo移步如果是SpringBoot开发者可直接使用SpringBoot快速启动器tianai-captcha-springboot-starter
1.导入xml
代码语言:javascript
代码运行次数:
0
运行
复制
<!-- maven 导入 --> <dependency> <groupId>cloud.tianai.captcha</groupId> <artifactId>tianai-captcha</artifactId> <version>1.3.3</version> </dependency>
2.使用 ImageCaptchaGenerator生成器生成验证码
代码语言:javascript
代码运行次数:
0
运行
复制
package example.readme; import cloud.tianai.captcha.common.constant.CaptchaTypeConstant; import cloud.tianai.captcha.generator.ImageCaptchaGenerator; import cloud.tianai.captcha.generator.common.model.dto.ImageCaptchaInfo; import cloud.tianai.captcha.generator.impl.MultiImageCaptchaGenerator; import cloud.tianai.captcha.resource.ImageCaptchaResourceManager; import cloud.tianai.captcha.resource.impl.DefaultImageCaptchaResourceManager; import cloud.tianai.captcha.validator.ImageCaptchaValidator; import cloud.tianai.captcha.validator.impl.BasicCaptchaTrackValidator; import java.util.Map; 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); } }
3.使用ImageCaptchaValidator校验器验证
代码语言:javascript
代码运行次数:
0
运行
复制
package example.readme; import cloud.tianai.captcha.validator.ImageCaptchaValidator; import cloud.tianai.captcha.validator.common.model.dto.ImageCaptchaTrack; import cloud.tianai.captcha.validator.impl.BasicCaptchaTrackValidator; import java.util.Map; public class Test2 { public static void main(String[] args) { ImageCaptchaValidator sliderCaptchaValidator = new BasicCaptchaTrackValidator(); ImageCaptchaTrack imageCaptchaTrack = null; Map<String, Object> map = null; Float percentage = null; // 用户传来的行为轨迹和进行校验 // - imageCaptchaTrack为前端传来的滑动轨迹数据 // - map 为生成验证码时缓存的map数据 boolean check = sliderCaptchaValidator.valid(imageCaptchaTrack, map); // 如果只想校验用户是否滑到指定凹槽即可,也可以使用 // - 参数1 用户传来的百分比数据 // - 参数2 生成滑块是真实的百分比数据 check = sliderCaptchaValidator.checkPercentage(0.2f, percentage); } } 整体架构设计
tianai-captcha 验证码整体分为 生成器(ImageCaptchaGenerator)、校验器(ImageCaptchaValidator)、资源管理器(ImageCaptchaResourceManager) 其中生成器、校验器、资源管理器等都是基于接口模式实现 可插拔的,可以替换为自定义实现,灵活度高
生成器(ImageCaptchaGenerator)主要负责生成行为验证码所需的图片校验器(ImageCaptchaValidator)主要负责校验用户滑动的行为轨迹是否合规资源管理器(ImageCaptchaResourceManager)资源存储(ResourceStore) 负责存储背景图和模板图资源提供者(ResourceProvider) 负责将资源存储器中对应的资源转换为文件流一般资源存储器中存储的是图片的url地址或者id之类, 资源提供者 就是负责将url或者别的id转换为真正的图片文件主要负责读取验证码背景图片和模板图片等资源管理器细分为 资源存储(ResourceStore)、资源提供者(ResourceProvider)图片转换器 (ImageTransform)主要负责将图片文件流转换成字符串类型,可以是base64格式/url 或其它加密格式,默认实现是bas64格式;清除内置的图片资源和模板资源地址:https://gitee.com/tianai/tianai-captcha
更多功能广大网友可以继续挖掘。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-15
,如有侵权请联系 [email protected] 删除
推荐阅读
目录
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
网址:1.3k Star可能是开源界最好用的行为验证码工具 https://m.mxgxt.com/news/view/1808887
相关内容
1.3K Star很不错!Go写的私域流量管理系统既然 Star 可以刷,那我们如何判断一个开源项目的好坏?
3.5k star!一款万能的 SQL 分析工具,厉害了!
Five Star Desktop Client 桌面工具集
使用Python和Tesseract实现验证码识别功能!
在线学习力测评工具的开发与验证
神器!使用Python 轻松识别验证码
十大好用的数据可视化工具 数据可视化工具软件哪个好
什么是STAR法则?为什么要使用STAR法则?怎么样使用STAR法则?
1010003奥立龙/orion Star及Star A适用电源适配器