python隨機生成驗證碼

2021-08-21 10:35:19 字數 2317 閱讀 8963

需要匯入pillow模組

from random import choice, randint

from pil import image, imagedraw, imagefont, imagefilter

class

verifycode

(object):

"""生成驗證碼模組"""

def__init__

(self, length=4, width=160, height=50, font_size=40):

self._random_code = ''

# 驗證碼字串

self._verify_code_image = none

# pilimage物件

self._length = length # 驗證碼長度

self._width = width # 寬度

self._height = height # 高度

self._font_size = font_size # 字型大小

self.random_code() # 初始化驗證碼字元

self.set_image() # 繪製

defrandom_code

(self):

chars = '1234567890qwertyuiopasdfghjklzxcvbnm'

# 驗證碼字元庫

code = ''

# 生成的驗證碼

for _ in range(self._length): # 迴圈隨機取乙個字元

code += choice(chars)

self._random_code = code # 賦值給當前物件的random_code屬性

@staticmethod

defrandom_color

(s=0, e=255):

return randint(0, 256), randint(0, 256), randint(0, 256)

defset_image

(self):

# 建立畫布

image = image.new('rgb', (self._width, self._height), (255, 255, 255))

# 建立字型物件

font = imagefont.truetype('arial.ttf', self._font_size)

# 建立畫圖物件

draw = imagedraw.draw(image)

# 隨機生成噪點

for x in range(self._width):

for y in range(self._height):

temp = x + y + randint(0, 10)

if temp % 10 == 0:

draw.point((x, y), fill=self.random_color(0, 255))

# 字元新增

for t in range(self._length):

dev_x = randint(0, 5) # 隨機左右浮動

dev_y = randint(0, 5) # 隨機上下浮動

x, y = self._font_size * t + dev_x, dev_y

# 將字元通過隨機顏色畫到中

draw.text((x, y), self._random_code[t],

font=font, fill=self.random_color(0, 200))

# 高斯模糊

image = image.filter(imagefilter.gaussianblur)

# 將物件賦值給當前物件的verify_code_image屬性

self._verify_code_image = image

@property

defverify_code

(self):

return self._random_code

@property

defverify_image

(self):

return self._verify_code_image

defget_verify

(self):

return self._random_code, self._verify_code_image

if __name__ == '__main__':

v1 = verifycode()

print(v1.get_verify())

# ('tspf', )

python 隨機生成驗證碼

首先隨機的生成數字或者字母肯定需要的是random模組。random是隨機數生成器。import random print random.random print random.randint 1,10 print random.randrange 1,11 以上的是最常見的隨機數生成方法,看看列印...

驗證碼隨機生成

pip install captcha驗證碼隨機生成 python 版本 3.6 captcha 版本 0.3 from captcha.image import imagecaptcha import numpy as np import matplotlib.pyplot as plt from...

隨機生成驗證碼

coding utf 8 created on mon sep 16 01 21 02 2019 author administrator import random from captcha.image import imagecaptcha import numpy as np from pil...