在 JavaScript 中生成验证码图片,需遵循以下步骤:创建画布元素,设置背景颜色和大小。生成随机字符串作为验证码文本。绘制验证码文本并添加干扰线和噪点。将画布转换成图片并存储为 dataURL。

如何在 JavaScript 中生成验证码图片
简介
验证码图片是一种图像,包含一个随机生成的字符序列,用于防止恶意机器人自动填写表单或执行其他操作。了解如何使用 JavaScript 生成验证码图片对于 Web 开发人员来说至关重要。
生成验证码图片的步骤
- 创建画布元素
const canvas = document.createElement("canvas");
canvas.width = 120;
canvas.height = 50;- 获取画布上下文
const context = canvas.getContext("2d");- 设置背景颜色
context.fillStyle = "white"; context.fillRect(0, 0, canvas.width, canvas.height);
- 生成随机字符串
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijlkmnopqrstuvwxyz0123456789";
let randomString = "";
for (let i = 0; i < 5; i++) {
randomString += characters[Math.floor(Math.random() * characters.length)];
}- 填充验证码文本
context.font = "bold 20px Arial"; context.fillStyle = "black"; context.fillText(randomString, 10, 30);
- 添加干扰线
for (let i = 0; i < 10; i++) {
context.beginPath();
context.strokeStyle = "gray";
context.moveTo(Math.random() * canvas.width, Math.random() * canvas.height);
context.lineTo(Math.random() * canvas.width, Math.random() * canvas.height);
context.stroke();
}- 添加噪点
for (let i = 0; i < 100; i++) {
context.fillStyle = "rgba(0, 0, 0, 0.1)";
context.fillRect(Math.random() * canvas.width, Math.random() * canvas.height, 1, 1);
}- 将画布转换成图片
const dataURL = canvas.toDataURL("image/png");使用生成的图片
生成的验证码图片可以以各种方式使用:
- 嵌入到表单元素中作为验证码字段
- 显示在图像元素中
- 通过 AJAX 请求发送到服务器
结论
通过遵循这些步骤,您可以生成自己的验证码图片,以帮助保护您的 Web 应用程序免受机器人攻击。










