c语言编程笔录

首页 >   > 笔记大全

笔记大全

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>