Python实现一个简单的验证码生成程序
发布时间:2023-12-04 22:59:21
验证码(CAPTCHA)是一种用于区分机器与人类的程序。它用于防止自动化程序(例如恶意机器人)对网站进行恶意行为,例如暴力破解、垃圾邮件、恶意留言等。
在Python中,我们可以使用PIL库(Python Imaging Library)来生成验证码。PIL库是Python中常用的图像处理库,它提供了一些用于创建、操作和显示图像的工具。下面是一个简单的验证码生成程序的实现:
from PIL import Image, ImageDraw, ImageFont
import random
def generate_captcha(captcha_text, font_path, font_size, image_size, noise_level=2):
# 创建一张空白的图片
image = Image.new('RGB', image_size, (255, 255, 255))
# 创建画笔对象
draw = ImageDraw.Draw(image)
# 设置字体
font = ImageFont.truetype(font_path, font_size)
# 在图片上随机生成噪点
for _ in range(noise_level):
x = random.randint(0, image_size[0])
y = random.randint(0, image_size[1])
draw.point((x, y), fill=get_random_color())
# 在图片上绘制验证码
draw.text((10, 10), captcha_text, fill=get_random_color(), font=font)
# 保存图片
image.save('captcha.png')
def get_random_color():
return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
上面的代码中,generate_captcha函数接受以下参数:
- captcha_text:验证码文本。
- font_path:字体文件路径。
- font_size:字体大小。
- image_size:图片尺寸。
- noise_level:噪点数量,默认为2。
使用例子如下:
captcha_text = 'ABCD1234' font_path = '/path/to/font.ttf' font_size = 40 image_size = (200, 100) generate_captcha(captcha_text, font_path, font_size, image_size)
运行上面的代码后,会在当前目录下生成一张名为captcha.png的验证码图片。
这是一个非常简单的验证码生成程序,更复杂的验证码往往包括扭曲、干扰线、干扰点等特性。要生成更加复杂的验证码,可以使用其他库或开源项目,例如captcha、python-captcha等。这些库提供了更多的自定义选项,可以生成更具挑战性的验证码。
