Python 生成图片验证码

  图片验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序。这种验证码通常以图片的形式出现,其中包含一些扭曲的字符或对象,用户需要识别这些字符或对象并输入正确的答案以通过验证。

  通常情况下,图片验证码会在用户注册或登录时出现,用户需要输入图片中的文字或字符才能继续进行操作。对于一些敏感性较高的应用场景,图片验证码也被广泛采用,以确保用户身份的安全。

需要注意的是,虽然图片验证码在一定程度上可以起到防止恶意攻击的作用,但它也有一些缺点。例如,对于一些老年用户或视力不佳的用户来说,识别验证码可能会有一定的困难。此外,一些黑客可能会通过图像识别技术来破解验证码,因此一些网站可能会使用更加复杂的验证码系统来提高安全性。

代码实现

import os
from PIL import Image, ImageDraw, ImageFont
import numpy as np
import random

class CaptchaGenerator:
    def __init__(self):
        self.NewArray = np.zeros((100, 300, 3), dtype=np.uint8)
        Sh = self.NewArray.shape
        for i in range(Sh[0]):
            for j in range(Sh[1]):
                for k in range(Sh[2]):
                    self.NewArray[i][j][k] = random.randint(0, 255)
        self.im = Image.fromarray(self.NewArray)
        self.D = ImageDraw.Draw(self.im)
        self.L = [chr(i + 48) for i in range(10)]

    def generate_captcha(self):
        captcha = ""
        for i in range(4):
            captcha += random.choice(self.L)
            self.D.text((75 * i + 10 + random.randint(-10, 10), random.randint(0, 40)), captcha[-1],
                       font=ImageFont.truetype('arial.ttf', 55), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
        return captcha

    def show_and_save(self, captcha):
        print("验证码数字:", captcha)
        #self.im.show()
        #self.im.save("code.jpg")

if __name__ == "__main__":
    captcha_generator = CaptchaGenerator()
    captcha = captcha_generator.generate_captcha()
    captcha_generator.show_and_save(captcha)

 可以收藏一下,同学们如果做什么学习项目,可以直接拿过去使用。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值