KgCaptcha 行为验证码自定义类型设置

简介: KgCaptcha 行为验证码自定义类型设置

前言

现在大部分的网站和手机软件都会使用到验证码的登录、注册、操作提醒功能。但是,你知道验证码到底有多少类型吗?今天小编就利用KgCaptcha中的设置给你详细介绍一下。

滑动拼图

滑动拼图验证是在滑块验证码的基础上增加了一个随机滑动距离,用户需要将滑块滑到拼图的缺口处,使拼图完整,才能通过验证码。

01.png

1.PNG

文字点选

文字点选验证码使用上,用户只要根据提示,按照顺序点击图中文字,即可完成验证。

21.png

3.PNG

语序点选

语序点选验证码使用上,用户需按照常用语的顺序点击正确的文字,即可完成验证。

41.png

5.PNG

字体识别

在字体识别验证码使用上,点击与其它字符不同字体的文字,用户仅需一次点击,即可进行安全验证。

61.png

7.PNG

空间推理

在空间推理验证码使用上,根据提示,点击对应的元素,即可进行安全验证。

81.png

9.PNG

代码片段

下面,我以滑动式和点选式验证码为示例。

滑动式验证码

鼠标移动滑块,限制右侧的拖出范围,获取css样式中left值,然后计算出滑动距离。最后当鼠标松开,发送数据并验证。

/* 鼠标移动 onmousemove|ontouchmove */functioneventMove(e){
/* 相关元素基本属性设置 */kg.show(sDiv[1], 1); /* 显示拉出进度条 */kg.html(sDiv[5], "");
sDiv[1].style.width="0px";
slide.style.borderColor="#2A62FF";  /* 小箭头边框颜色 */slide.style.backgroundImage='url("'+kgConfig["icon"][3] +'")';
/* 拉出进度条长度 */sDiv[1].style.width=strip.offsetLeft+20+"px";  /* 20 为按钮下的重叠部分 *//* 滑动条箭头位置移动 */slide.style.left= (kg.os==="Phone"?e.changedTouches[0].clientX : e.clientX) -offsetX+"px";  /* 小箭头位置移动 */if (slide.offsetLeft<=-kgConfig["border"][0]) {
slide.style.left="-"+kgConfig["border"][0] +"px";
    }
varsMax=kgConfig["bgSize"][0] -50-kgConfig["border"][0]*3/* 50 按钮宽度 */if (slide.offsetLeft>sMax) {
slide.style.left=sMax+"px";
    }
/* 同步拼图长条位置移动 */strip.style.left=slide.offsetLeft+"px";  /* 拼图长条位置移动 */if (strip.offsetLeft<=0) {  /* 左侧拖出限制 */strip.style.left="0px";
    }
vartMax=kgConfig["bgSize"][0] -62/* 右侧拖出限制,52为拼图小方块内容大小/72为条形宽度 */if (strip.offsetLeft>tMax) {
strip.style.left=tMax+"px";
    }
}


点选式验证码

点击文字,记录用户每次点击的位置并生成数字圆点和点击次数,当点击次数达到指定次数则发送数据并进行验证。

/* 点击文字事件 */KgDisplay[2].addEventListener("mousedown", function (e) {
if (clickCount===0){
startTime=newDate().getTime();  /* 记录第一次点击时间 */    }
e=e||window.event/* 获取点击位置 */varclickCoord=kg.clickCoord(KgDisplay[2], e);
if (strxy){strxy+=", "}
strxy+="["+clickCoord["x"] +", "+clickCoord["y"] +"]";  /* 记录每次点击的坐标值 */clickCount++;  /* 当前点击次数 *//* 生成数字圆点 */varcube=document.createElement('div');
cube.className="SmallCube";
cube.style.left=clickCoord["x"]-14+"px";  /* (宽24px + 边2px*2)/ 2 */cube.style.top=clickCoord["y"]-14+"px";
cube.innerHTML=clickCount.toString();
KgDisplay[2].parentNode.insertBefore(cube, KgDisplay[2].nextSibling);
if (clickCount>=kgConfig["strCount"]){  /* 4次点完了 *//* 发送数据并验证 */...    }
});


相关链接

官方地址:凯格行为验证码(KgCaptcha)滑动拼图验证,无感验证码,文字点选验证码

在线体验:凯格行为验证码在线体验

开发文档:凯格行为验证码-开发文档

相关文章
|
存储 计算机视觉 异构计算
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
使用python&C++对bubbliiiing的yolo系列进行opencv.dnn进行推理部署
507 0
|
8月前
|
人工智能 运维 负载均衡
AgentRun上线!5分钟完成企业级Agent构建
阿里云发布函数计算AgentRun,基于Serverless架构打造一站式Agentic AI基础设施,深度融合AI场景,实现毫秒级弹性、按需付费、安全沙箱与全链路可观测,助力企业降本60%,加速AI Agent高效落地生产环境。
1058 0
AgentRun上线!5分钟完成企业级Agent构建
|
6月前
|
人工智能 前端开发 JavaScript
高频刚需|日常必用|AI编程辅助表单与接口实操技巧详解
做开发这么久,用过不少AI编程助手,大多不是太复杂、门槛高,就是功能鸡肋不实用,直到偶然上手一款轻量化AI编程助手,才算找到贴合咱们普通开发者日常需求的帮手。今天不搞虚的,全程口语化唠唠,结合我两个多月的真实上手经历,换两个日常高频用到的实操案例,说说它怎么用、用着咋样,全程只聊技术和感受,不推荐、不引流,纯粹同行间唠唠经验。
244 1
|
9月前
|
缓存 Java 大数据
深入理解 Project Valhalla:值类型即将如何重塑 JVM 性能
Project Valhalla 是OpenJDK的关键项目,通过引入值类型、泛型特化等特性,显著提升JVM性能与内存效率,减少对象开销和GC压力,助力Java在高性能计算、大数据等领域实现接近底层语言的运行效率。
1126 7
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
500 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
JavaScript 前端开发 开发工具
如何参与开源项目以及贡献代码的流程和注意事项(2024年11月保姆级教程)
本文详细介绍了如何参与开源项目及贡献代码的流程和注意事项,包括选择项目、fork仓库、克隆到本地、阅读贡献指南、提交代码、创建Pull Request等步骤,并强调了沟通礼仪、代码质量的重要性,适合初学者参考学习。
1552 1
如何参与开源项目以及贡献代码的流程和注意事项(2024年11月保姆级教程)
|
测试技术 持续交付 开发工具
《对于大规模的代码项目,如何进行有效的代码管理》
有效管理大规模代码项目至关重要。使用Git等版本控制系统追踪变化;合理组织代码结构;制定统一代码风格;编写详细文档与注释;实施持续集成和自动化测试;执行代码审查;持续优化代码;支持并行开发;强化团队协作;定期备份代码。这些措施能显著提升代码质量和可维护性。
417 11
|
物联网 5G 数据处理
|
Java 大数据 Spring
MyBatis-Plus - 批量插入、更新、删除、查询
MyBatis-Plus - 批量插入、更新、删除、查询
2935 0