返回顶部
首页 > 资讯 > 后端开发 > Python >Python3实现验证码
  • 484
分享到

Python3实现验证码

验证码 2023-01-31 02:01:54 484人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一:准备工作,需要安装PIL,安装方式,pip install Pillow 二:具体实现 #!/usr/bin/env python3 # coding:UTF-8 """" 文件说明: """ from PIL import I

一:准备工作,需要安装PIL,安装方式,pip install Pillow

二:具体实现

#!/usr/bin/env python3
# coding:UTF-8
""""
文件说明:
"""
from PIL import Image, ImageDraw, ImageFont
import random
import string
import os


def get_code(width=100, height=40, fontSize=35):
    """
    width: 背景图片的宽度
    height:背景图片的高度
    fontsize:验证码的字体大小
    """
    img = Image.new("RGB", (width, height), getColor())  # 创建指定大小,背景颜色,模式的图片
    draw = ImageDraw.Draw(img)  # 创建画刷
    path = get_Font()  # 得到一个系统下的随机字体路径
    # 获取指定路径的字体
    font = ImageFont.truetype(font=path, size=fontSize)
    content = myrandom()  # 获取随机生成的验证码的值
    # 将验证码画到图片上
    draw.text((width * 0.1, height * 0.15), content,
              fill=getColor(), font=font)
    # 画干扰线
    for i in range(5):
        x = random.randint(0, 20)
        y = random.randint(0, height)
        z = random.randint(width - 20, width)
        w = random.randint(0, height)
        draw.line(((x, y), (z, w)), fill=getColor())
    # 返回验证码图片与文本内容
    return img, content


def getColor():
    '''随机生成一个元组类型的 RGB颜色'''
    color = (random.randint(0, 256), random.randint(0, 256), random.randint(0, 256))
    return color


def myrandom(count=5):
    myList = list(string.ascii_letters + string.digits)  # 指定要生成验证码的集合,数字,大小写字母
    # 在指定的mylist集合中随机取出count个集合
    lists = random.sample(myList, count)
    # 用指定的字符串连接集合中的内容
    return "".join(lists)


def get_Font(split='.ttf'):
    """返回操作系统下的指定后缀的字体"""
    if os.name == 'nt':
        path = 'C:\windows\Fonts'.replace("\\", '/') + '/'
    else:
        # 根据不同的操作系统,系统字体在不同的文件下,ubuntu下可以在/usr/share/fonts/ 下找到很多文件类型的字体
        path = '/usr/share/fonts/truetype/freefont/'
    listFont = os.listdir(path)
    # 获取指定后缀的字体,默认是.ttf类型的后缀
    fontList = [path + x for x in listFont if os.path.splitext(x)[1] == split]
    # 返回系统字体列表,以及所在的路径
    # return fontList, path
    # 随机返回一个字体
    path = random.sample(fontList, 1)
    return path[0]


if __name__ == '__main__':
    img, content = get_code()
    img.show()


三:上述代码可以直接运行

--结束END--

本文标题: Python3实现验证码

本文链接: https://www.lsjlt.com/news/185687.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python3实现验证码
    一:准备工作,需要安装PIL,安装方式,pip install Pillow 二:具体实现 #!/usr/bin/env python3 # coding:UTF-8 """" 文件说明: """ from PIL import I...
    99+
    2023-01-31
    验证码
  • 如何使用Python实现极验验证码识别验证码
    这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
    99+
    2023-07-05
  • js canvas实现验证码并获取验证码功能
    本文实例为大家分享了js canvas制作验证码并获取验证码的具体代码,供大家参考,具体内容如下 最近没事写了一些小插件,今天要说的是包装一个验证码的js代码,如下: var ...
    99+
    2024-04-02
  • Ajax+Struts2如何实现验证码验证功能
    这篇文章主要为大家展示了“Ajax+Struts2如何实现验证码验证功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax+Struts2如何实现验证码验证...
    99+
    2024-04-02
  • Python3 生成一个随机验证码
    '''设计一个八位随机验证码,验证码是由大写字母,小写字母和数字三种字符组成。定义一个范围只有1,2,3的随机数,如果这个随机数是1,则八位验证码的当前位置用大写字母;                            如果这个随机数是...
    99+
    2023-01-31
    验证码
  • 简单实现Android验证码
    安卓验证码的简单实现 我们经常在登录或者注册的时候要求输入验证码,这里简单介绍一下一种方法 效果如下 首先是要获取 随机的四个字母组合,我这里是将26个字母存储到一个数组中...
    99+
    2022-06-06
    Android
  • vue实现图形验证码
    本文实例为大家分享了vue实现图形验证码的具体代码,供大家参考,具体内容如下 效果图: 或 或 或 代码: 验证码组件: src/common/sIdentify.vue ...
    99+
    2024-04-02
  • vue_drf实现短信验证码
    目录一、需求1,需求二、sdk参数配置  1,目录结构三、代码实现1,后端代码2,前端代码一、需求 1,需求   我们在做网站开发时,登录页面很多情况下是可以用手机号接收短信验证码,...
    99+
    2024-04-02
  • C#实现验证码功能
    本文实例为大家分享了C#实现验证码功能的具体代码,供大家参考,具体内容如下 分析 需要四个字符(字母(大小写)+数字) 将四个字符连接成字符串 将连接的字符...
    99+
    2024-04-02
  • vue实现登录验证码
    本文实例为大家分享了vue实现登录验证码的具体代码,供大家参考,具体内容如下 先来demo效果图 canvas验证码组件(可直接复制,无需改动) <template>...
    99+
    2024-04-02
  • Android实现验证码登录
    本文实例为大家分享了Android实现验证码登录的具体代码,供大家参考,具体内容如下 结果展示 1.导包 1.1在项目的gradle中导入 maven { url "https...
    99+
    2024-04-02
  • java实现图片验证码
    本文实例为大家分享了java实现图片验证码的具体代码,供大家参考,具体内容如下 目的: 1) 验证操作者是否是人 2) 防止表单重复提交 生成验证码的要点: 1) 使用java代码生...
    99+
    2024-04-02
  • vue如何实现验证码
    这篇文章主要讲解了“vue如何实现验证码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现验证码”吧!vue实现验证码的方法:1、创建js组件;2、引入组件;3、定义验证对象;4、...
    99+
    2023-06-25
  • JS怎么实现验证码
    这篇文章主要介绍JS怎么实现验证码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码:<!DOCTYPE html><html lang="en">...
    99+
    2023-06-27
  • JavaScript实现验证码案例
    本文实例为大家分享了JavaScript实现验证码效果的具体代码,供大家参考,具体内容如下 今天的案例,效果如下: 这个案例的实现其实没有很多难点,让我们一起来看看吧~ html和...
    99+
    2024-04-02
  • js实现验证码案例
    本文实例为大家分享了js实现验证码的具体代码,供大家参考,具体内容如下 css代码: input{ width: 200px; ...
    99+
    2024-04-02
  • JavaScript实现滑块验证码
    本文实例为大家分享了JavaScript实现滑块验证码的具体代码,供大家参考,具体内容如下 效果:鼠标在底部滑块上按下按住不松拖动可以移动滑块,上面大图里面带有小图背景的滑块也会跟随...
    99+
    2024-04-02
  • 短信验证码—Java实现
    在业务需求中我们经常会用到短信验证码,比如手机号登录、绑定手机号、忘记密码、敏感操作等,都可以通过短信验证码来保证操作的安全性,于是就记录下了一次开发的过程。 一.架构设计 发送短信是一个比较慢的过程,因为需要用到第三方服务(腾讯云短信...
    99+
    2023-08-17
    java rabbitmq redis 腾讯云 spring boot
  • Android 验证码功能实现代码
    先给大家展示下效果图,如果大家感觉还不错,请参考实现代码 很简单的一个例子,点击刷新验证码,刷新当前显示的验证码,点击确定,如果输入的和显示的匹配,就会跳转到下一个界面中,这...
    99+
    2022-06-06
    验证码 Android
  • java登录验证码实现代码
    VerifyCodeServlet.java类:复制代码 代码如下:package com.spring.controller;import java.awt.Color; ...
    99+
    2022-11-15
    java 验证码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作