验证码程序通常用于网站注册、登录等场景,用于防止机器人或自动化工具进行恶意操作。下面是一个简单的Python验证码生成程序示例,使用了PIL库来生成随机验证码图片。请确保已经安装了PIL库,如果没有安装,可以使用pip install pillow命令进行安装。

这个程序会生成一个包含随机字符的验证码图片,并保存到本地,用户输入验证码字符后,程序会检查输入是否正确。
from PIL import Image, ImageDraw, ImageFont
import random
import string
生成随机字符验证码函数
def generate_captcha(length=6):
# 生成随机字符列表
chars = string.ascii_letters + string.digits # 包括大小写字母和数字
captcha_str = ’’.join(random.choice(chars) for i in range(length)) # 生成随机字符串作为验证码
return captcha_str
生成验证码图片函数
def generate_captcha_image(captcha_str):
width, height = 200, 100 # 图片尺寸
font_size = 36 # 字体大小
font = ImageFont.truetype(’arial.ttf’, font_size) # 使用ttf字体文件,这里假设字体文件路径为当前目录的arial.ttf
image = Image.new(’RGB’, (width, height), color=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) # 创建新图片并设置背景色为随机颜色
draw = ImageDraw.Draw(image) # 创建绘图对象
text_width, text_height = draw.textsize(captcha_str, font=font) # 计算文本宽度和高度
text_x = (width - text_width) / 2 # 计算文本水平位置居中显示
text_y = height // 2 + font_size // 2 # 计算文本垂直位置居中显示(考虑字体大小)
draw.text((text_x, text_y), captcha_str, font=font, fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) # 在图片上绘制文本(验证码)并设置文本颜色为随机颜色
return image, captcha_str # 返回图片对象和对应的验证码字符串
主函数,生成验证码并保存图片到本地,然后让用户输入验证码进行验证
def main():
captcha_str = generate_captcha() # 生成随机验证码字符串
image, captcha_str_display = generate_captcha_image(captcha_str) # 生成验证码图片和显示的验证码字符串(用于验证用户输入)
image.save(’captcha.png’) # 保存图片到本地文件captcha.png中
print("验证码已保存到captcha.png文件中,请查看并输入验证码:")
user_input = input() # 获取用户输入的验证码字符
if user_input == captcha_str: # 检查用户输入的验证码是否正确
print("验证成功!")
else:
print("验证失败!")
print("请重新输入正确的验证码:") # 如果用户输入的验证码不正确,提示用户重新输入正确的验证码并再次验证,这里只是一个简单的示例程序,实际应用中可能需要更复杂的逻辑来处理用户输入和验证过程,你可以根据自己的需求进行修改和扩展,注意:这个程序只是一个简单的示例程序,实际应用中还需要考虑安全性、用户体验等方面的因素,可以使用更复杂的算法生成验证码图片,添加干扰元素等来提高安全性,还需要考虑如何处理用户输入和验证过程等细节问题。




