news 2026/5/1 10:56:26

从 0 到 1 搭建验证码服务:滑块 + 行为验证的工程实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 0 到 1 搭建验证码服务:滑块 + 行为验证的工程实现

Spring Boot 验证码微服务(生产骨架)

✅ 滑块验证码 ✅ 行为验证码(无感 + 风控评分) ✅ Redis 状态 / Token / TTL ✅ 风险分级 → 决策 ✅ 可扩展点(模型 / 点选 / 短信)

真实项目结构


一、项目结构(生产推荐)

captcha-service ├── controller │ └── CaptchaController.java ├── service │ ├── SliderCaptchaService.java │ ├── BehaviorCaptchaService.java │ └── RiskDecisionService.java ├── model │ ├── SliderTrack.java │ ├── BehaviorEvent.java │ ├── CaptchaResult.java │ └── CaptchaDecision.java ├── util │ ├── TokenUtil.java │ └── RiskUtil.java ├── config │ └── RedisConfig.java └── CaptchaApplication.java

二、核心数据模型

1️⃣ 决策枚举

public enum CaptchaDecision { PASS, SLIDER, REJECT }

2️⃣ 返回结果

@Data @AllArgsConstructor public class CaptchaResult { private CaptchaDecision decision; private String captchaToken; }

3️⃣ 滑块轨迹

@Data public class SliderTrack { private int x; private int y; private long t; }

4️⃣ 行为事件

@Data public class BehaviorEvent { private String type; // move / click / key private int x; private int y; private long timestamp; }

三、Token 工具(一次性 + 防重放)

public class TokenUtil { private static final String SECRET = "captcha-secret"; public static String generate(String sessionId) { String raw = sessionId + ":" + System.currentTimeMillis() + ":" + UUID.randomUUID(); return DigestUtils.sha256Hex(raw + SECRET); } }

四、滑块验证码 Service(重点)

@Service public class SliderCaptchaService { public boolean verifyPosition(int userX, int targetX) { return Math.abs(userX - targetX) <= 5; } public boolean verifyTrack(List<SliderTrack> tracks) { if (tracks == null || tracks.size() < 10) return false; long duration = tracks.get(tracks.size() - 1).getT() - tracks.get(0).getT(); if (duration < 300) return false; boolean acc = false, dec = false; for (int i = 2; i < tracks.size(); i++) { int dx1 = tracks.get(i - 1).getX() - tracks.get(i - 2).getX(); int d
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 21:55:56

如何保护您的 ERP 业务数据?

你知道吗&#xff1f;64% 的企业都遭遇过 ERP 系统入侵事件。这一数据充分说明&#xff0c;保护企业数据至关重要。网络犯罪分子将企业数据视为重点攻击目标&#xff0c;因此你必须做好安全防护。 ERP 系统是众多企业的核心&#xff0c;负责管理关键业务流程与敏感信息。它连接…

作者头像 李华
网站建设 2026/5/1 5:23:27

基于python的人脸检测识别录像系统[python]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文介绍了一个基于Python的人脸检测识别录像系统。该系统结合了人脸检测与识别技术以及录像功能&#xff0c;利用OpenCV库进行图像采集和处理&#xff0c;借助Dlib库实现人脸检测与关键点定位&#xff0c;通过预训练的人脸识别模型完成人脸识别任务。系统能够…

作者头像 李华
网站建设 2026/5/1 6:25:30

BGE-Large-Zh手把手教学:语义检索系统搭建全流程

BGE-Large-Zh手把手教学&#xff1a;语义检索系统搭建全流程 你是否想过&#xff0c;如何让机器真正“理解”一段中文&#xff0c;并像人一样找到最相关的信息&#xff1f;无论是构建一个智能客服系统&#xff0c;还是开发一个能精准检索内部文档的工具&#xff0c;核心挑战都…

作者头像 李华
网站建设 2026/5/1 6:27:22

探索三相整流器带无功补偿的奇妙世界

三相整流器带无功补偿 图一整体电路拓扑图 图二电压电流追踪电网电压 图三直流母线电压控制 图四逆变器侧电流与无功负载电流 图五电网功率与无功负载功率与逆变器侧功率在电力电子领域&#xff0c;三相整流器带无功补偿是一个十分有趣且具有重要应用价值的话题。今天咱就来深入…

作者头像 李华