验证码通常用于验证用户是否是人类而不是机器人,常用于注册、登录、找回密码等场景。验证码的实现方式有很多种,以下是一个简单的基于Python和Flask的验证码生成示例。

你需要安装一些必要的库,如Flask、Pillow等,你可以使用pip来安装这些库:
pip install Flask Pillow
然后你可以创建一个简单的Flask应用来生成验证码:
from flask import Flask, render_template, request, redirect, url_for
from PIL import Image, ImageDraw, ImageFont
import random
import string
import os
app = Flask(__name__)
设置验证码图片保存路径和字体路径
IMAGE_PATH = ’/path/to/save/images/’ # 修改为你的图片保存路径
FONT_PATH = ’/path/to/font.ttf’ # 修改为你的字体文件路径
@app.route(’/captcha’, methods=[’GET’])
def captcha():
# 生成随机验证码字符串
code = ’’.join(random.choices(string.ascii_letters + string.digits, k=5)) # 生成长度为5的随机字符串,包含大小写字母和数字
session[’captcha’] = code # 将验证码存入session中,以便后续验证用户输入是否正确
width, height = 200, 100 # 设置图片大小
font_size = 40 # 设置字体大小,确保字体大小适应图片大小并清晰可见
font = ImageFont.truetype(FONT_PATH, font_size) # 使用自定义字体,确保字体清晰并符合你的需求
image = Image.new(’RGB’, (width, height), color=(random.randint(200, 255), random.randint(200, 255), random.randint(200, 255))) # 创建空白图片并设置背景色为随机颜色,确保背景色与文字颜色有明显区别,便于识别文字内容,你可以根据需要调整背景色和字体颜色,然后添加一些干扰线条和噪点来增加验证码的复杂度,最后保存生成的图片到服务器上的指定路径,这样你就可以在用户访问网站时生成新的验证码图片了,用户提交表单后,你可以从session中获取之前保存的验证码与用户输入的验证码进行比较,从而验证用户的输入是否正确,如果用户输入的验证码与保存的验证码不匹配,则提示用户重新输入正确的验证码,这样可以防止恶意攻击和机器人自动提交表单,注意在实际应用中还需要考虑其他安全措施来增强系统的安全性,例如使用更复杂的验证码生成算法、限制同一IP地址的请求频率等,此外还需要注意保护用户的隐私和数据安全避免泄露敏感信息。




