python3识别图片验证码,如何输入文字图片验证码
日常生活中可以看到,网站和app一般都需要用户注册登录,从而获取用户的登录信息。您不仅需要输入正确的用户名和密码,还需要输入验证码才能登录该页面。包括图像验证码、文本验证码、数字验证码等。触发模式如输入、移动、点击、滑动等。层出不穷。只有正确输入用户名、密码和身份验证代码,登录才会成功。
那么,如何生成不同认证码的随机图像,如何验证用户输入的认证码是否正确?具体步骤如下图所示。
一、流程图:
二、登录界面:
三、代码实践:
#-编码:UTF-8- @作者:zsw @ file: index.py @时间:2020年12月18日 Fromflaskimport发自JMN] LWX/RT #获取授权码image @app.route((/index),Methods=[ Get ])def Get _ captcha info)3360 RES=Get _ 360 indent=4)#验证用户输入的授权码@app.route(/verify),Methods=[ post ](def Get _ Verify(:RES=Get _ captcha)。get _ verify _ info)return JSON . dumps)return JSON . dumps)return in port=5058,threaded=true((*-coding:utf-8-* *)@ author:zsw @ file:get _ captcha . py @ time 33602020/12 requestfromcgenerate _ image _ verify _ Code . captcha _ handleimportcreate _ captchafromiioimportbytesoimportbase 64 #代码保存在验证码映像中,验证码由session class get _ captcha(:def generate _ captcha获取验证码图片和验证码session[code]=code #以返回ssid的格式保存代码到session的# print(session[ code ]))img . save(f png )# # print(f . getvalue))图片转换为二进制流img _ stream=base64 . b 64 code(f . getvalue)) data :img _ stream exception ase:return { code : message :返回的验证码图片出错,Reason :e } # def get _ verify _ e
#-coding 3360 utf-8- @ author:zsw @ file:captcha _ handle . py @ time 33602020/12/18 im pood image fong以下为小写数字ran=string . ascii _ lower case string . digits char= for iinrange(4):char=random . choice(ran)return core turn)random RGB color def _ getrandom color(:return(random . randint)50,150),Random.random)TTF),25) code=_getrandomchar(#在画布上为范围(4) 4)中的t绘制生成的字符):draw.text ((30 * t5,0),code[t],_ getrated 80)) position,color draw . point)))randoot . randint(0 0,120),random)) fill=_getrandomcolor(#用模糊滤镜模糊图像# img=img . filter)image filter . blur)# img
四。验证测试:获取验证码图片和验证码:
您可以将base64代码转换成图像来查看验证码。https://oktools.net/image2base64
图中的认证码是cdov。
然后访问界面,验证用户输入的验证码。如果用户输入“cdov”,则验证码输入成功。
{ 验证代码: cdov}
当用户输入“cd0v”时,验证码输入不正确。
{ 验证代码: cd0v}
如果重新获得验证码图像,请重复上述步骤。
参考:http://www.calmkart.com/p=332
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。