当前位置: 首页 > news >正文

wordpress 试题龙岩网站优化费用

wordpress 试题,龙岩网站优化费用,成立一个网站需要多少钱,游戏制作需要哪些人员图形验证码是网站安全防护的重要组成部分,能有效防止自动化脚本进行恶意操作,如何实现一个简单的运算图形验证码?本文封装了一个简单的js类,可以用于生成简单但安全的图形验证码。它支持自定义验证码样式,包括字体大小…

图形验证码是网站安全防护的重要组成部分,能有效防止自动化脚本进行恶意操作,如何实现一个简单的运算图形验证码?本文封装了一个简单的js类,可以用于生成简单但安全的图形验证码。它支持自定义验证码样式,包括字体大小、颜色以及干扰线的数量和样式。如下图。

核心js文件如下:

// mcaptcha.jsexport class Mcaptcha {constructor(options) {this.options = options;this.fontSize = 24;this.init();this.refresh();}init() {this.ctx = wx.createCanvasContext(this.options.el);this.ctx.setTextBaseline("middle");this.ctx.setFillStyle(this.randomColor(180, 240));}refresh() {var code = '';var num1 = this.randomNum(0, 9)var num2 = this.randomNum(0, 9)this.options.createCodeImg = code;code = num1 + '+' + num2 + '=?'this.options.num1 = num1;this.options.num2 = num2;let arr = [code]if (arr.length === 0) {arr = ['e', 'r', 'r', 'o', 'r'];};let offsetLeft = this.options.width * 0.6 / (arr.length - 1);let marginLeft = this.options.width * 0.2;arr.forEach((item, index) => {this.ctx.setFillStyle(this.randomColor(0, 180));let size = this.randomNum(24, this.fontSize);this.ctx.setFontSize(size);let dis = offsetLeft * index + marginLeft - size * 0.3;let deg = this.randomNum(-1, 1);this.ctx.translate(dis, this.options.height * 0.45);this.ctx.rotate(deg * Math.PI / 180);this.ctx.fillText(item, 2, this.randomNum(0,10));this.ctx.rotate(-deg * Math.PI / 180);this.ctx.translate(-20, -this.options.height * 0.6);})for (var i = 0; i < 4; i++) {this.ctx.strokeStyle = this.randomColor(40, 180);this.ctx.beginPath();this.ctx.moveTo(this.randomNum(0, this.options.width), this.randomNum(0, this.options.height));this.ctx.lineTo(this.randomNum(0, this.options.width), this.randomNum(0, this.options.height));this.ctx.stroke();}for (var i = 0; i < this.options.width / 4; i++) {this.ctx.fillStyle = this.randomColor(0, 255);this.ctx.beginPath();this.ctx.arc(this.randomNum(0, this.options.width), this.randomNum(0, this.options.height), 1, 0, 2 * Math.PI);this.ctx.fill();}this.ctx.draw();}validate(code) {var code = Number(code)var v_code = this.options.num1 + this.options.num2if (code == v_code) {return true} else {this.refresh()return false}}randomNum(min, max) {return Math.floor(Math.random() * (max - min) + min);}randomColor(min, max) {let r = this.randomNum(min, max);let g = this.randomNum(min, max);let b = this.randomNum(min, max);return "rgb(" + r + "," + g + "," + b + ")";}
}

使用方法

以微信小程序为例,其他环境适当修改。

  1. 引入Mcaptcha.js
import Mcaptcha from './mcaptcha.js';

     2.初始化Mcaptcha实例

在你的页面的JS文件中,创建一个Mcaptcha实例,并传入相应的配置选项。

Page({onLoad: function() {new Mcaptcha({el: 'captchaCanvas', // canvas的IDwidth: 300, // canvas的宽度height: 150 // canvas的高度});}
});

      3.在WXML中添加Canvas元素

在页面的WXML文件中,添加一个Canvas元素,用于展示验证码。

<canvas canvas-id="captchaCanvas" style="width: 300px; height: 150px;"></canvas>

4.使用Mcaptcha实例生成验证码

调用Mcaptcha实例的refresh方法来生成验证码。

Page({// ...onShow: function() {// 假设mcaptcha是之前创建的Mcaptcha实例mcaptcha.refresh();}
});

5.验证用户输入

当用户输入验证码并提交时,调用Mcaptcha实例的validate方法进行验证

Page({// ...checkCaptcha: function(inputCode) {// 假设mcaptcha是之前创建的Mcaptcha实例if (mcaptcha.validate(inputCode)) {wx.showToast({title: '验证成功!',icon: 'success'});} else {wx.showToast({title: '验证失败,请重试。',icon: 'none'});}}
});

 Mcaptcha.js的核心方法

  • refresh(): 生成新的验证码,包括随机数字、运算符和干扰元素。
  • validate(code): 验证用户输入的验证码是否正确,返回布尔值。
  • randomNum(min, max): 生成指定范围内的随机数。
  • randomColor(min, max): 生成指定范围内的随机颜色。

http://www.yayakq.cn/news/686822/

相关文章:

  • 打电话问网站建设推广wordpress显示同一分类的文章
  • ftp上传wordpress网站要多久清华大学有关网站建设的书
  • django企业网站开发实例图片外链在线生成
  • 外汇跟单网站开发铜山徐州网站开发
  • 深圳 高端网站建设宝安app手机网站设计
  • 网站设计费用入哪个会计科目网站建设哪些
  • 在哪个网站找婚照公司网站建设手机app
  • 南通公司企业网站建设怎样做网页游戏网站
  • 英文字体设计网站19年做哪个网站致富
  • 在线音乐网站怎么做免费空间浏览量
  • 河北住房和建设厅官方网站成都品牌设计策划
  • 石家庄网站seo外包办公空间设计装修
  • 网站咋做推广汕头网站专业制作
  • 快速做课件的网站网站建设就找桥三科技
  • 如何给网站做外部优化免费下载微信2023
  • 福州建网站在哪里可以做个人网站
  • wordpress zh cn.po拼多多seo怎么优化
  • wordpress模板 淘宝怎样做网站的优化
  • 网站建设现状和前景网站项目计划说明书
  • 网站的建设可以起到什么作用是什么意思网站空间是不是服务器
  • 做网站 seo手机发布WordPress
  • 网站建设灵寿网站设计成功案例
  • 湛江cms模板建站上海网站建设推广
  • 网站结构框架图怎么做wordpress5.0.2 zh_cn
  • 南京广告宣传公司seo如何seo网站
  • 定制产品网站有哪些wordpress user_activation_key
  • 台式机做网站服务器环球设计官网
  • wordpress 企业建站做网站要懂哪些
  • 营商环境建设局网站微信登录网址
  • 可以做视频剪辑兼职的网站网站开发用那个软件