python最简单验证码Python验证码
更新时间:2023-07-09什么是验证码?
验证码(CAPTCHA)是为了确认目标用户是人类,而不是自动化程序编写的,用于对抗网络恶意行为的一种公共全球计算机问题。另外,实现验证码也可以依靠人类的认知机制,把人可完成且简单的任务进行设计,从而为了吸引人相关活动和广告等功能而诞生。
示例代码:
# 安装captcha模块
pip install captcha
# 生成验证码图片及文字
from captcha.image import ImageCaptcha
import random
num = ''.join(random.sample('0123456789', 4)) # 生成4位数字的验证码
image = ImageCaptcha() # 实例化一个ImageCaptcha对象
captcha = image.generate(num) # 生成图片
image.write(num, 'captcha.png') # 保存图片为本地file
如何实现Python最简单验证码?
实现python最简单验证码的方式是生成一个包含随机数字的图片。生成图片的方式可以使用Pillow、matplotlib、captcha等模块。将生成的图片保存到本地文件夹中,并将图片包含的验证码返回。用户输入验证码并进行验证。如果输入的验证码与图片中的验证码一致,则验证通过,否则需要重新生成验证码。
示例代码:
# 安装Pillow模块
pip install Pillow
# 生成验证码图片及文字
from PIL import Image, ImageDraw, ImageFont
import random
width, height = 120, 30 # 图片大小
im = Image.new('RGB', (width, height), 'white') # 创建一个白色的图片
draw = ImageDraw.Draw(im) # 生成一支画笔
font = ImageFont.truetype('arial.ttf', 25) # 指定字体和大小
num = ''.join(random.sample('0123456789', 4)) # 生成4位数字的验证码
for i in range(len(num)):
draw.text((10 + i * 25, 4), num[i], font=font, fill=(random.randint(0, 256), random.randint(0, 256), random.randint(0, 256))) # 将每个数字画到图片上,并设置颜色
im.save('captcha.png') # 保存图片为本地file,用于页面展示等
如何验证用户输入的验证码是否正确?
验证用户输入的验证码是否正确,需要将生成的验证码与用户输入的验证码进行比对。在比对过程中,可以忽略大小写。如果输入的验证码与图片中的验证码一致,则验证通过,否则需要重新生成验证码。
示例代码:
# 验证用户输入的验证码是否正确
def verify_captcha(captcha):
if captcha.lower() == num.lower():
return True
return False
如何将验证码嵌入到网页中?
将生成的验证码图片嵌入到网页中,可以使用HTML的img标签,将图片的路径指向生成的本地文件。在用户提交表单时,需要将验证码一并提交给后端,供后端进行验证。
示例代码:
<html>
<body>
<form action="verify" method="POST">
<label for="captcha">验证码:</label>
<input type="text" id="captcha" name="captcha">
<img src="captcha.png" alt="Captcha">
<input type="submit" value="提交">
</form>
</body>
</html>