Files
abcv7 dbe9b58b0c feat: 增强版验证码全套实现 — 16种类型生成器/加密/风控/站点管理/平台后端/前端SDK/UI
- 核心新增: ICON_CLICK(PNG图标方案,预渲染资源)/SCRATCH/JIGSAW/CURVE_SLIDER(V1-V3)/ANGLE/CURVE_DRAW/WORD_ORDER_CLICK/PROOF_OF_WORK 等生成器
- 图标点选: classpath PNG 加载替代运行时字体渲染(Linux容器无emoji字体),提示条图作为 templateImage 返回前端
- 新增模块: crypto(AES+RSA)/obfuscator(背景乱序/噪声/扭曲)/risk(风控/IP黑名单/限流)/site(站点管理)/ml(轨迹规则引擎)
- 平台后端: 站点管理/验证码API(generate/verify/secondary-verify)/统计/ML轨迹学习
- 前端SDK: TPCaptcha兼容,支持全部新型号渲染与交互
- 工具: tools/icon-render 图标预渲染工具
2026-08-26 09:58:15 +08:00

50 lines
2.4 KiB
XML

<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
<defs>
<!-- 渐变色定义 -->
<linearGradient id="shieldGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#4F46E5" /> <!-- 科技靛蓝 -->
<stop offset="100%" stop-color="#06B6D4" /> <!-- 灵动青色 -->
</linearGradient>
<linearGradient id="ringGrad" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#10B981" /> <!-- 安全绿 -->
<stop offset="100%" stop-color="#3B82F6" /> <!-- 信任蓝 -->
</linearGradient>
<!-- 发光滤镜 -->
<filter id="glow" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="2" result="blur" />
<feComposite in="SourceGraphic" in2="blur" operator="over" />
</filter>
</defs>
<!-- 外部盾牌形状 (象征安全防护) -->
<path d="M 50 10 L 85 25 L 85 50 C 85 75 50 90 50 90 C 50 90 15 75 15 50 L 15 25 Z"
fill="none"
stroke="url(#shieldGrad)"
stroke-width="4"
stroke-linejoin="round" />
<!-- 内部动态扫描环 (象征行为分析与智能验证) -->
<circle cx="50" cy="50" r="16"
fill="none"
stroke="url(#ringGrad)"
stroke-width="4"
stroke-dasharray="60 40"
stroke-linecap="round"
filter="url(#glow)">
<animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" dur="1.5s" repeatCount="indefinite" />
</circle>
<!-- 中心脉冲核心 (象征触控/鼠标焦点) -->
<circle cx="50" cy="50" r="4" fill="#06B6D4">
<animate attributeName="r" values="3; 6; 3" dur="1.5s" repeatCount="indefinite" />
<animate attributeName="opacity" values="0.4; 1; 0.4" dur="1.5s" repeatCount="indefinite" />
</circle>
<!-- 上下装饰轨迹线 (象征运动轨迹) -->
<path d="M 35 38 Q 50 28 65 38" fill="none" stroke="#4F46E5" stroke-width="2" stroke-linecap="round" opacity="0.6">
<animate attributeName="opacity" values="0.2; 0.8; 0.2" dur="2s" repeatCount="indefinite" />
</path>
<path d="M 35 62 Q 50 72 65 62" fill="none" stroke="#4F46E5" stroke-width="2" stroke-linecap="round" opacity="0.6">
<animate attributeName="opacity" values="0.8; 0.2; 0.8" dur="2s" repeatCount="indefinite" />
</path>
</svg>