广告
返回顶部
首页 > 资讯 > 后端开发 > Python >【python 验证码】产生中文验证码
  • 876
分享到

【python 验证码】产生中文验证码

验证码中文python 2023-01-31 01:01:40 876人浏览 薄情痞子

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

摘要

#-*-coding:utf-8-*- import sys reload(sys) sys.setdefaultencoding('utf-8') from PIL import ImageDraw,ImageFont fro

#-*-coding:utf-8-*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from PIL import ImageDraw,ImageFont
from PIL import Image
import random
import math, string

class RandomChar():

  @staticmethod
  def Unicode():
    val = random.randint(0x4E00, 0x9FBF)
    return unichr(val)

  @staticmethod
  def GB2312():
    head = random.randint(0xB0, 0xCF)
    body = random.randint(0xA, 0xF)
    tail = random.randint(0, 0xF)
    val = ( head << 8 ) | (body << 4) | tail
    str = "%x" % val
    return str.decode('hex').decode('gb2312')

class ImageChar():
  def __init__(self, fontColor = (0, 0, 0),
                     size = (100, 40),
                     fontPath = 'simsun.ttc',
                     bGColor = (255, 255, 255),
                     fontSize = 20):
    self.size = size
    self.fontPath = fontPath
    self.bgColor = bgColor
    self.fontSize = fontSize
    self.fontColor = fontColor
    self.font = ImageFont.truetype(self.fontPath, self.fontSize)
    self.image = Image.new('RGB', size, bgColor)

  def rotate(self):
    self.image.rotate(random.randint(0, 30), expand=0)

  def drawText(self, pos, txt, fill):
    draw = ImageDraw.Draw(self.image)
    draw.text(pos, txt, font=self.font, fill=fill)
    del draw

  def randRGB(self):
    return (random.randint(0, 255),
           random.randint(0, 255),
           random.randint(0, 255))

  def randPoint(self):
    (width, height) = self.size
    return (random.randint(0, width), random.randint(0, height))

  def randLine(self, num):
    draw = ImageDraw.Draw(self.image)
    for i in range(0, num):
      draw.line([self.randPoint(), self.randPoint()], self.randRGB())
    del draw

  def randChinese(self, num):
    gap = 5
    start = 0
    for i in range(0, num):
      char = RandomChar().GB2312()
      x = start + self.fontSize * i + random.randint(0, gap) + gap * i
      self.drawText((x, random.randint(-5, 5)), RandomChar().GB2312(), self.randRGB())
      self.rotate()
    self.randLine(18)

  def save(self, path):
    self.image.save(path,'jpeg')
if __name__=='__main__':
    ic = ImageChar(fontColor=(100,211, 90))
    ic.randChinese(4)
    ic.save("E:/ID/9.jpeg")

这里写图片描述

--结束END--

本文标题: 【python 验证码】产生中文验证码

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【python 验证码】产生中文验证码
    #-*-coding:utf-8-*- import sys reload(sys) sys.setdefaultencoding('utf-8') from PIL import ImageDraw,ImageFont fro...
    99+
    2023-01-31
    验证码 中文 python
  • Discuz! X2验证码的产生和验证及随机数产生探讨
    一、验证码的产生 1、如何在模板中添加一个验证码 在X2中验证码的模板部分独立为一个模板文件(template/default/common/seccheck.htm),供各个地方调用。 在模板中可以添加如下代码来调用验...
    99+
    2022-06-12
    验证码 随机数
  • python 密码验证(滑块验证)
    目录题目描述:解题思路/算法分析/问题及解决实验代码题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入。用代替密码;或者最新输入显示,前面的变成...
    99+
    2022-11-13
  • python生成随机验证码
    一、生成随机验证码(纯数字及字母加数字): import random import string checkcod='' for i in range(5): #5位验证码 ''' #纯数字验证码 #随机值1-...
    99+
    2023-01-31
    验证码 python
  • python图片验证码生成代码
    本文实例为大家分享了python图片验证码实现代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: UTF-8 -*- import random ...
    99+
    2022-06-04
    验证码 代码 图片
  • python快速生成验证码(密码)
    描述:一个简单的练习生成验证码或密码的小脚本程序,验证码广泛用于web的随机验证模块,也可以通过稍稍改造,达到随机生成密码的效果.来看看代码吧:代码:def GetCode(num):     code = ''     for i in ...
    99+
    2023-01-31
    验证码 密码 快速
  • 一文详解Python中的行为验证码验证功能
    目录前言验证类型概述滑动拼图文字点选语序点选字体识别空间推理前言 最近在开发行为验证码,经常触及到关于验证类型的相关内容。但使用起来不太熟练,闲暇之余,总结一下我对行为验证码验证类型...
    99+
    2023-03-09
    Python行为验证码验证功能 Python行为验证码 Python验证码
  • 如何使用Python实现极验验证码识别验证码
    这篇“如何使用Python实现极验验证码识别验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python实现极验...
    99+
    2023-07-05
  • python PIL模块与随机生成中文验证码
    在这之前,你首先得了解Python中的PIL库。PIL是Python Imaging Library的简称,PIL是一个Python处理图片的库,提供了一系列模块和方法,比如:裁切,平移,旋转,改变尺寸等等...
    99+
    2022-06-04
    验证码 中文 模块
  • python生成验证码图片代码分享
    本文实例为大家分享了python生成验证码图片代码,分享给大家供大家参考,具体内容如下 基本上大家使用每一种网络服务都会遇到验证码,一般是网站为了防止恶意注册、发帖而设置的验证手段。其生成原理是将一串随机产...
    99+
    2022-06-04
    验证码 代码 图片
  • python实现验证码生成显示
    from captcha.image import ImageCaptcha import numpy as np import matplotlib.pyplot as plt from PIL import Image imp...
    99+
    2023-01-31
    验证码 python
  • VB.NET中怎么生成验证码
    本篇文章给大家分享的是有关VB.NET中怎么生成验证码,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。VB.NET生成验证码前台代码为:< asp:image&n...
    99+
    2023-06-17
  • python 验证码问题
    tesseract-ocr-setup-3.02.02.exe  下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-setup-3.02....
    99+
    2023-01-31
    验证码 python
  • 实验楼Python破解验证码
      本人大二,因为Python结业考试项目,又想要学习机器学习方向,但是由于接触时间不长,选择了实验楼的Python破解验证码这个项目作为我的项目, 我在原来的基础上加了一些代码用于完善,并且对功能如何实现记录在此,第一次接触到图像识别的...
    99+
    2023-01-30
    验证码 实验楼 Python
  • php怎么生成验证码
    在 PHP 中,可以使用以下方法生成验证码:1. 使用 `imagecreate()` 函数创建一个空白的图片对象。2. 使用 `i...
    99+
    2023-10-09
    php
  • Android随机生成验证码
    Android随机生成验证码,Android利用随机数绘制不规则的验证码,加强用户登录或者注册的安全性。 具体思路如下: 在一块固定宽高的画布上,画上固定个数的随机数字和字母,...
    99+
    2022-06-06
    验证码 Android
  • PHP生成图形验证码
    PHP生成图形验证码 效果:随机生成6位验证码,100个干扰的黑点,一条干扰线 代码:https://blog.csdn.net/weixin_41957626/article/details/image.php(生成验证码)和che...
    99+
    2023-09-07
    php 开发语言
  • springboot验证码的生成与验证的两种方法
    目录前言效果一览(单击图片刷新验证码)一、使用整合kaptcha方式实现验证码生成与验证二、使用hutool-captcha方式实现验证码生成与验证前言 在springboot的登陆...
    99+
    2022-11-13
  • 利用java实现验证码生成并完成验证
    利用java实现验证码生成并完成验证?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java 制作验证码并进行验证实例详解在注册、登录的页面上经常会出现验证码,为...
    99+
    2023-05-31
    java 验证码 ava
  • springboot验证码生成及验证功能怎么实现
    这篇“springboot验证码生成及验证功能怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot验证...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作