python 的 captcha 验证码生成

运行环境 : python 3.6.0

第三方库 : tensorflow 1.9.0

 

在机器与人类的不平等对抗中 , 验证码的工作是多么的重要

captcha 不是一个单词而是一串单词的缩写 Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机与人类的图灵测试)。我们都知道图灵测试是什么,captcha的核心思想就是设计出人类能够轻易通过但是计算机无法完成的任务,通过任务的测试结果,来确定进行操作的到底是人类还是计算机。

刚开始我还一直以为 captcha 就是验证码 , 百度之后才明白是这个意思 ......

普通验证码生成代码 :

# -*- coding: utf-8 -*-
 
from captcha.image import ImageCaptcha
import random
import string
import os
 
# character = [0 1 2 ... 9 a b c ...z A B C ... Z]
characters = string.digits + string.ascii_letters
 
width, height, n_len, n_class = 170, 80, 4, len(characters)
 
generator = ImageCaptcha(width=width, height=height)  # 创建图片生成对象
random_str = ''.join([random.choice(characters) for j in range(4)])  # 随机选取 4 个字符
img = generator.create_captcha_image(random_str, (127, 0, 255), (74, 191, 239))  # 创建图片 , 将字符串转换为图片
 
# 保存生成的图片到本地
fileName = "saveImg"
if not os.path.exists(fileName):
    os.mkdir(fileName)
img.save("%s/%s.png" % (fileName, random_str))  # 保存生成的图片
 
img.show()  # 展示输出结果
 

运行结果 :