目录
1. 验证码原理
验证码(CAPTCHA),“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试),是一种区分用户是计算机还是人的公共全自动程序。
验证码被广泛用于用户登录以及注册的校验。主要原因是生成的验证码每次都不同,这就可以排除用其他病毒或者软件自动申请用户及自动登陆,从而防止别人进行恶意攻击。而且如果频繁发送验证码,系统会提示一段时间后再发送验证码,也可以减少恶意攻击。
2. 常见验证码识别
- 图片验证码
- 活动验证码
- 点触验证码
- 宫格验证码
2.1 图片验证码
图片验证码:由字符组合而成的图片,通常会加上干扰。
- OCR技术
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式的技术。
- OCR实例
pytesseract库 --- 识别图片
pytesseract.image_to_string(image)
import pytesseract
from PIL import Image
img = Image.open('checkcode.jpg')
pytesseract.image_to_string(img)