captcha

深度学习之卷积神经网络(CNN)的应用-验证码的生成与识别

一个人想着一个人 提交于 2020-07-29 07:20:24
验证码的生成与识别 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-further-further/p/10755361.html 目录 1.验证码的制作 2.卷积神经网络结构 3.训练参数保存与使用 4.注意事项 5.代码实现(python3.5) 6.运行结果以及分析 1.验证码的制作 深度学习一个必要的前提就是需要大量的训练样本数据,毫不夸张的说,训练样本数据的多少直接决定模型的预测准确度 。 而本节的训练样本数据(验证码:字母和数字组成)通过调用Image模块(图像处理库)中相关函数生成。 安装:pip install pillow 验证码生成步骤:随机在字母和数字中选择4个字符 -> 创建背景图片 -> 添加噪声 -> 字符扭曲 具体样本如下所示: 对于上图的验证码,如果用传统方式破解,其步骤一般是: 图片分割:采用分割算法分割出每一个字符; 字符识别:由分割出的每个字符图片,根据OCR光学字符识别出每个字符图片对应的字符; 难点在于:对于图片字符有黏连(2个,3个,或者4个全部黏连),图片是无法完全分割出来的,也就是说,即使分割出来了,字符识别基本上都是错误的,特别对于人眼都无法分辨的验证码,用传统的这种破解方法,成功率基本上是极其低的。 黏连验证码 人眼几乎无法分辨验证码 第一张是 0ymo or 0ynb ?第二张是

eggjs学习笔记第三十三天:eggjs创建基类base.js控制器、配置session、创建tool.js服务(svg-captcha验证码)

不想你离开。 提交于 2020-07-29 06:03:14
一、创建基类。 基类的作用:比如说登录成功失败,管理员新增编辑成功失败,角色新增编辑成功失败,都是有成功回调与失败回调的,比如展示一个成功的信息失败的信息,这些东西都是通用的。所以利用基类封装起来,其他类继承这个基类就能实现代码复用。 controller>admin新建base.js 写入一个简单地基类: "use strict"; const Controller = require("egg").Controller; class BaseController extends Controller { async success() { this.ctx.body = "成功"; } } module.exports = BaseController; 其他的控制器都引入baseController并进行继承。 "use strict"; const BaseController = require("../admin/base"); class LoginController extends BaseController { async index() { console.log("admin"); await this.ctx.render("admin/login.html"); } } module.exports = LoginController; 在view

深度学习之卷积神经网络(CNN)的应用-验证码的生成与识别

那年仲夏 提交于 2020-07-29 02:09:46
验证码的生成与识别 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-further-further/p/10755361.html 目录 1.验证码的制作 2.卷积神经网络结构 3.训练参数保存与使用 4.注意事项 5.代码实现(python3.5) 6.运行结果以及分析 1.验证码的制作 深度学习一个必要的前提就是需要大量的训练样本数据,毫不夸张的说,训练样本数据的多少直接决定模型的预测准确度 。 而本节的训练样本数据(验证码:字母和数字组成)通过调用Image模块(图像处理库)中相关函数生成。 安装:pip install pillow 验证码生成步骤:随机在字母和数字中选择4个字符 -> 创建背景图片 -> 添加噪声 -> 字符扭曲 具体样本如下所示: 对于上图的验证码,如果用传统方式破解,其步骤一般是: 图片分割:采用分割算法分割出每一个字符; 字符识别:由分割出的每个字符图片,根据OCR光学字符识别出每个字符图片对应的字符; 难点在于:对于图片字符有黏连(2个,3个,或者4个全部黏连),图片是无法完全分割出来的,也就是说,即使分割出来了,字符识别基本上都是错误的,特别对于人眼都无法分辨的验证码,用传统的这种破解方法,成功率基本上是极其低的。 黏连验证码 人眼几乎无法分辨验证码 第一张是 0ymo or 0ynb ?第二张是

Spring Security 实战干货:从零手写一个验证码登录

*爱你&永不变心* 提交于 2020-07-27 09:21:53
1. 前言 前面关于 Spring Security 写了两篇文章,一篇是介绍 UsernamePasswordAuthenticationFilter ,另一篇是介绍 AuthenticationManager 。很多同学表示无法理解这两个东西有什么用,能解决哪些实际问题?所以今天就对这两篇理论进行实战运用,我们从零写一个短信验证码登录并适配到 Spring Security 体系中。如果你在阅读中有什么疑问可以回头看看这两篇文章,能解决很多疑惑。 当然你可以修改成邮箱或者其它通讯设备的验证码登录。 2. 验证码生命周期 验证码存在有效期,一般5分钟。 一般逻辑是用户输入手机号后去获取验证码,服务端对验证码进行缓存。在最大有效期内用户只能使用验证码验证成功一次(避免验证码浪费);超过最大时间后失效。 验证码的缓存生命周期: public interface CaptchaCacheStorage { /** * 验证码放入缓存. * * @param phone the phone * @return the string */ String put(String phone); /** * 从缓存取验证码. * * @param phone the phone * @return the string */ String get(String phone); /** *

让开发头疼的“验证码”有什么用?

橙三吉。 提交于 2020-07-26 20:09:25
你是不是要经常输入验证码?登录网站时输完密码,要输入一个单词或者几个歪歪扭扭不怎么好辨认的字母,这个场景一定不陌生?有没有思考为什么要输入验证码?验证码有什么作用? 其实,验证码存在的最大意义,就是区分在页面上进行输入操作的是人还是机械化的代码编程。就像12306网站的验证码,它的“进化史”就是一部不断与黄牛和抢票软件“斗智斗勇”的历史,从一开始的简单数字、字母、加减法,到闪烁变形字母、干扰线变形字母,再到近些年不断优化的挑战人智商下限的图形验证码…… “确定我不是机器人?”没错,验证码英文叫做CAPTCHA,Completely Automated Public Turing Test to tell Computers and Humans Apart,由CMU的教授Luis von Ahn提出,翻译一下是“全自动区分计算机和人类的图灵测试”,能够防止软件被大量恶意注册,比如阻止在高峰节假日期间的购票被黄牛写一串代码就抢购一空。 到这里,你可能会说“我知道了为什么要输验证码,可是输验证码很无聊,输错了还要重输。”那你一定是不知道,验证码还有这些潜藏的作用啊! 验证码的作用: 1、为了防止机器冒充人类做暴力破解: 暴力破解想想就恐怖,这关系每个用户的网络安全,现在很多网站、APP都绑定用户的银行账户,有很多内容还涉及到个人隐私,如果被不法分子暴力破解,那损失可就大了。 2

让程序员互相伤害的“验证码”是什么?

爱⌒轻易说出口 提交于 2020-07-24 16:43:20
俗话说得好,“常在网上走,哪有不验证”。我们爱也好恨也罢,每天谁不抓耳挠腮输入几个验证码呢? 然而验证码说到底是一种 被动防御 的对策,今天我们快速梳理梳理验证码从无到有的发展历程,并且介绍一种思路非常前沿的黑科技, 改被动为主动 、 如丝般顺滑的 :不验证的验证码——无感验证。 一、 为什么要验证 验证码是为了反垃圾。 早在90年代,雅虎邮箱就频频遭到机器产生的大量垃圾邮件骚扰,那时鉴别人/机的需求就已出现。路易斯·冯·安(Luis von Ahn)带领团队设计了一款被称为CAPTCHA的小工具,其背后的思路就是,人类可以轻松识别,但是机器识别困难,从而可以区分人类和机器。 二、 如何验证 那么,人类和机器到底有什么区别呢? 所谓CAPTCHA,就是Completely Automated Public Turing Test To Tell Computers and Humans Apart,即“全自动区分计算机和人类的公开图灵测试”(...说人话!)——验证码。图灵测试在这里成为识别的关键,而简单问答则是最常用的手段。 图零测试通常是基于对人类知识的验证(Knowledge-based authentication, KBA),这里的知识主要指对图形的识别和一些简单的分析。 三、 攻防爱恨情仇 然而随着机器识别能力和对人类知识学习的不断深入,破解普通验证码的成功率越来越高

Scraping large amount of Google Scholar pages with url

不羁的心 提交于 2020-07-18 02:52:08
问题 I'm trying to get full author list of all publications from an author on Google scholar using BeautifulSoup. Since the home page for the author only has a truncated list of authors for each paper, I have to open the link of the paper to get full list. As a result, I ran into CAPTCHA every few attempts. Is there a way to avoid CAPTCHA (e.g. pause for 3 secs after every request)? Or make the original Google Scholar profile page to show full author list? 回答1: Recently I faced similar issue. I at

How to deal with the captcha when doing Web Scraping in Puppeteer?

落花浮王杯 提交于 2020-07-01 03:52:48
问题 I'm using Puppeteer for Web Scraping and I have just noticed that sometimes, the website I'm trying to scrape asks for a captcha due to the amount of visits I'm doing from my computer. The captcha form looks like this one: So, I would need help about how to handle this. I have been thinking about sending the captcha form to the client-side since I use Express and EJS in order to send the values to my index website, but I don't know if Puppeteer can send something like that. Any ideas? 回答1:

Cleaning up captcha image

邮差的信 提交于 2020-06-24 06:16:47
问题 I'm trying to clean up the image above I've tried several different methods using open cv, I either erode the original image too much to the point where parts of the letters become missing such as below: I'm not really sure sure how to get rid of the last diagonal line and repair the S, my code so far is: import cv2 import matplotlib.pylab as plt img = cv2.imread('/captcha_3blHDdS.png') #make image gray gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #Blur blur = cv2.GaussianBlur(gray,(5,5),0)

How to create Ajax refresh for django-simple-captcha

喜夏-厌秋 提交于 2020-06-22 12:06:29
问题 I'm using the django-simple-captcha app for my django based website, I am able to integrate the captcha form field into my form, but the problem is, how do I create a button which calls Ajax refresh to refresh the captcha image on click? The documentation for the app is not very clear, and I tried to follow the example given in the documentation but it doesn't work. Please help me on this issue? EDIT: Here's the link to the django package: django-simple-captcha 回答1: Here's a working