首頁  >  文章  >  web前端  >  javascript中驗證碼的程式碼怎麼打

javascript中驗證碼的程式碼怎麼打

WBOY
WBOY原創
2023-05-21 13:03:081086瀏覽

JavaScript中驗證驗證碼的程式碼是指在網頁中使用JavaScript語言實作驗證碼驗證的功能。驗證碼是一種安全保護機制,主要透過圖形、文字等形式在網頁中展示一些隨機、複雜的字元/數字,並要求使用者根據提示輸入正確的訊息,以證明其身份或防止機器惡意操作。

一般來說,在網頁中驗證驗證碼的程式碼可以分成兩個部分:產生驗證碼和驗證驗證碼。

一、產生驗證碼

JavaScript產生驗證碼可以使用Canvas或DOM元素來實作。

  1. 使用Canvas
//生成随机字符串
function createCode() {
  var code = "";
  var codeLength = 4; //验证码长度
  var charList = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  for (var i = 0; i < codeLength; i++) {
    var randomCharIndex = Math.floor(Math.random() * charList.length);
    code += charList[randomCharIndex];
  }
  return code;
}

//设置背景颜色
function drawBackground(ctx) {
  ctx.fillStyle = "#eee"; //背景颜色
  ctx.fillRect(0, 0, 80, 28); //画出矩形背景
}

//画出随机字符串
function drawCode(ctx, code) {
  ctx.fillStyle = "#000"; //字符串颜色
  ctx.font = "24px Arial"; //字体大小和字体
  ctx.fillText(code, 10, 22); //绘制文字
}

//生成验证码
function createCheckCode() {
  var canvas = document.getElementById("checkCodeCanvas");
  var ctx = canvas.getContext("2d");
  drawBackground(ctx);
  var code = createCode();
  drawCode(ctx, code);
  return code; //将生成的验证码返回
}
  1. 使用DOM元素
//生成随机字符串
function createCode() {
  var code = "";
  var codeLength = 4; //验证码长度
  var charList = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  for (var i = 0; i < codeLength; i++) {
    var randomCharIndex = Math.floor(Math.random() * charList.length);
    code += charList[randomCharIndex];
  }
  return code;
}

//生成验证码图片
function createCheckCode() {
  var code = createCode();
  var checkCodeImg = document.getElementById("checkCodeImg");
  checkCodeImg.src = "checkCode.php?code=" + code;
  return code; //将生成的验证码返回
}

二、驗證驗證碼

##驗證驗證驗證碼主要是透過判斷使用者在輸入框中輸入的值和產生的隨機字串是否一致來實現。

function validateCheckCode() {
  var inputCode = document.getElementById("inputCode").value.trim().toLowerCase();
  var checkCode = document.getElementById("checkCode").value.toLowerCase(); //checkCode是之前生成的随机字符串
  if (inputCode.length <= 0) {
    alert("请输入验证码!");
    return false;
  } else if (inputCode != checkCode) {
    alert("验证码错误!请重新输入!");
    createCheckCode(); //生成新的验证码
    document.getElementById("inputCode").value = ""; //清空输入框
    return false;
  } else {
    alert("验证码正确!");
    return true;
  }
}

以上就是JavaScript中產生和驗證驗證碼的程式碼。需要注意的是,驗證碼雖然能夠一定程度上防止機器造成的惡意訪問,但也會帶來一定程度上的用戶體驗問題,因此在使用時需要權衡利弊。

以上是javascript中驗證碼的程式碼怎麼打的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn