红包
◆ [2024-12-21 星期六 22:16] ◆
您来自:18.116.47.235,欢迎您访问風雲工作室。
◆
收藏本站
◆ | ◆
设为首页
◆
联系站长(腾讯QQ)
5029111 [風雲]
〓
站长当前离线
〓
首 页
论坛交流
游戏频道
无忧脚本
旧版论坛
云服务器
聊 天 室
自助链接
来访记录
访客留言
搜索提供
位置:
風雲工作室
-
论坛交流
-
技术专栏
-
脚本中心
- 【原创】JS 版 HTML验证码
返回
主题:【原创】JS 版 HTML验证码
Rimifon
★☆☆☆☆☆☆☆☆☆
积分:285
发帖:317
登录:2024/3/26
注册:2006/6/28
(1楼)
【原创】JS 版 HTML验证码
<!doctype html><html><head> <style type="text/css"> span.code{ height: 15px; padding: 4px 3px; display: inline-block; vertical-align: middle; background-color: #abcdef } span.code a, span.code b{ width: 3px; height: 3px; float: left } span.code b{ background-color: #000 } </style></head><body> <span class="code"></span> <p class="data"></p> <script type="text/javascript"> var veri = new Vericode("span.code"); setInterval(function() { var rnd =veri.encode(Math.random().toString().slice(-4)); document.querySelector(".data").innerHTML = rnd; veri.showCode(rnd); }, 1000); function Vericode(tag) { var sec = "12457"; var dic = "43334,11111,40424,40404,33400,42404,42434,40000,43434,43404".split(","); var img= document.querySelector(tag); this.encode = function(num) { var num = Math.random().toString().slice(-4); var arr = new Array, bts = num.split(""); for(var x = 0; x < bts.length; x++) { var s = bts[x].split(""); for(var y = 0; y < s.length; y++) { var c = dic[s[y]].split(""); for(var i = 0; i < 5; i++) { if(!arr[i]) arr[i] = ""; arr[i] += c[i]; } } } return parseInt(arr.join(""), 5).toString(36); }; this.showCode = function(code) { code = parseInt(code, 36).toString(5).replace(/\d/g, function(idx) { return sec.charAt(idx); }); var arr = code.split(""); img.style.width = (code.length * 3) + "px"; img.innerHTML = ""; for(var i = 0; i < arr.length; i++) addTag(arr[i] - 0); }; function addTag(num) { var str = num.toString(2) + "0"; while(str.length < 5) str = "0" + str; var arr = str.split(""); for(var i = 0; i < arr.length; i++) { var ele = document.createElement(arr[i] == 0 ? "a" : "b"); img.appendChild(ele); } } } </script></body></html>
[您可以先修改代码再运行]
原本打算用png实现,但是png结构及算法较复杂,暂时先用html+css+js实现。
風雲工作室
时间:
2020年8月13日 17:28:12
IP:
已记录
引用
回复
© Copyright 2006-2024,
風雲工作室
All rights reserved.
【
湘ICP备05009306号
】
QQ登录
操作 1 个库,连接 2 次,执行 7 次,耗时 47 毫秒。