验证码解码

2024-03-28

我见过一些验证码使用 javascript、php 等进行解码。他们是如何做到的?

比如很受欢迎的超级上传 site's 验证码也已被解码 http://herecomethelizards.co.uk/mu_captcha/.


我是一名图像处理专家和验证码解码器,之前做过很多验证码解析项目。

好啦,我们开始验证码解析步骤吧!

解码任何类型的验证码有 3 个主要步骤:

1-删除背景

清除验证码中的任何噪音(使用任何图像处理方法)。

验证码解码战斗机注意事项:如果你想有一个好的验证码,你应该添加更强的噪音。使用具有相似字符颜色的随机噪声背景。

2- 拆分字符

当他们分开时,这一步很容易;当他们不分开时,这一步就很难了。

*验证码解码霸王注意事项:如果你想有一个好的验证码,不要把字符分开!让它们重叠,不要对字符使用不同的颜色,解码器可以很容易地分割字符! (大多数开发人员都没有意识到这一点,并认为最好使用彩色验证码!),最好的方法是用黑色制作重叠的字符串。对于经验丰富的验证码解码器来说,解码彩色验证码不成问题!它只是美丽而没有用! :) 使用随机曲线将所有角色相互连接。 *

3- 将单独的图像转换为字符

分离后,我们有了一个字符集,(现在没有任何字符串,只有图像和像素),我们应该将字符图像转换为字符串,但是如何?! 有几种方法,如果它们不旋转,并且具有固定的字体和大小(例如 freeglobes CAPTCHA),您可以定义一个模式集,您的程序应该循环抛出模式以找到每个图像的最佳匹配,如果字符非常不同并且需要一个大的模式,您应该使用“神经网络”来识别该字符。用于验证码解析的神经网络将采用一个字符,我们告诉网络这个字符是什么,例如,我们将给它一个“A”的图像,然后我们告诉神经网络:它是“A”! ,然后它会“学习”这个角色并将其学习保存到数据库中,这个过程称为“训练”。因此,当我们再次向训练有素的网络询问新角色时,它会从其学习数据库中返回最佳匹配。 通常解码器专家使用验证码本身来训练神经网络。当心!使用适当的数据进行训练可能会影响你的结果。

验证码解码战斗机注意事项:如果您想拥有一个好的验证码,请使用任何解码器无法识别字符的方法,即使使用神经网络也是如此。使字符随机变形、使用多种字体而不是一种字体以及旋转字符等。

最后,我们将所有单个字符连接成一个并将其作为结果返回。

不幸的是,没有固定的算法来解决任何验证码,这意味着新的验证码需要新的分析和训练。您无法制作验证码解码器来解码所有验证码。

开始之前您应该了解什么:

1- 图像处理基础知识

2- 神经网络的一般理解

3-简单的图像处理功能(任何语言)

For PHP:

imagecreate()

imagecreatetruecolor()

imagecolorat()

imagecolorsforindex()

imagesetpixel()
.
.
.

对于.NET:

Bitmap type,
getPixel()
setPixel()
.
.
.

对于 JavaScript 和 HTML5:

You should know the Canvas very well.

Lastly: 验证码解码战士注意事项:如果您想知道某人如何解码验证码并希望阻止其解码,您应该首先自己成为验证码解码器或聘请非常了解验证码弱点和攻击算法的人!

希望能有所帮助! ;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证码解码 的相关文章

  • 如何防止机器人程序和垃圾邮件 API 请求?

    我正在使用react native 开发一个Android 应用程序 该应用程序与我正在为该应用程序开发的API 进行通信 该 API 是使用 Laravel 和 Laravel Passport 构建的 我知道 Android 应用程序可
  • 当 querySelectorAll 在不使用库的情况下不可用时,按属性获取元素?

    p 你怎样才能做到相当于 document querySelectorAll data foo where 查询选择器全部 https developer mozilla org en DOM Document querySelectorA
  • 如何在 MySQL 中存储工作日列表?

    我正在使用编写一个应用程序PHP我需要存储一个独特的工作日列表MySQL 在应用程序中 我有一个数组来存储工作日 如下所示 days Wed Thu Sat 我知道我可以使用SET列 但我不想使用这种类型 因为它与我正在使用的框架 Lara
  • 如何使用 Laravel Scheduler 命令将输出重定向到 STDOUT?

    我的调度程序应用程序运行到 Docker 容器中 Laravel 调度程序由主管管理并执行到容器中 我通过以下方式管理输出重定向 http veithen github io 2015 01 08 supervisord redirecti
  • 如何在 React JS 组件中预加载图像?

    我目前正在渲染一个子组件signInError发生 这signInError存储在父组件中 如果不为 null 则渲染
  • 为什么虽然输入的值确实发生了变化,但jquery更改事件没有触发? [复制]

    这个问题在这里已经有答案了 JSFIDDLE http jsfiddle net meXm3 2 网页代码
  • waitUntilObjectExists() Amazon S3 PHP SDK 方法,它到底是如何工作的?

    该函数是否会暂停 php 脚本 直到在 s3 服务器上找到该对象 我将它放在 foreach 循环中 一张一张地上传图像 找到对象后 我调用一个方法在本地删除图像 然后删除本地文件夹 如果为空 这是正确的处理方式吗 谢谢 foreach f
  • 从 json 创建下拉列表

    我有一个这种形式的 json COLUMNS ID Name DATA 1 Joe 2 Sam 3 Doug 我正在寻找一个如何在 javascript 中从该数据创建下拉列表的示例 但 json dropdown 列表的所有示例 json
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • PHP 5 的 HTML 表单库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个QuickForm替代品 QF 存在性能问题 例如组合框中的许多选项 我还想要一些更面向对象的东西 比如 Zend Form
  • 从 BitBucket 请求 OAuth 令牌

    在过去的 4 个小时里 我一直在尝试将 BitBucket 集成到我的应用程序中 但没有成功 在阅读的过程中BitBucket 的 RESTful API 文档 https confluence atlassian com display
  • 使用 Doctrine2 时的多重歧视级别

    我正在使用 Doctrine2 来管理我的模型 如下 有一个抽象概念Content与复合模式Gallery 也是一个抽象概念Media从中Video and Image继承 我的选择是添加鉴别器Content and Media表以便区分G
  • CakePHP 后退和前进按钮没有布局

    我们正在 CakePHP 中构建一个大型 CMS 并集成了 Croogo 安装 我们最近遇到了一个问题 当用户单击back在浏览器中 或forward按钮 您最终得到的是使用以下命令的视图 ctp 文件blank布局 所以没有样式 js 等
  • 验证 Laravel 中的选择表单

    我的联系表上有这个 html div class form group div
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • datatables.search 函数修改后的奇怪行为

    这个问题是后续问题这个问题 https stackoverflow com questions 54671211 overriding datatables js search behavior 我已经创建了这个 JSFiddle http
  • 通过 javascript 将 onsubmit 添加到表单

    您将如何仅通过 Javascript 将 OnSubmit 属性插入到表单中 我对 javascript 还很陌生 所以如果您能够提供详细的示例代码 那将是最有帮助的 情况是这样的 我通过 Chargify 支付平台 使用托管注册页面来处理
  • AngularJS + Laravel 5 身份验证

    在使用 AngularJS 构建 SPA 时 我想在 AngularJS 网站中实现用户身份验证 但是 我不知道从哪里开始以及最佳实践是什么 基本上我有一个确定可以担任一个或多个角色 我寻找了一些例子 这样我就可以对如何正确处理这个问题有一
  • 过早退出 Qualtrics 中的循环和合并块

    我目前正在进行一项 Qualtrics 调查 受访者必须解决一长串字谜问题 然后回答一些人口统计问题 为了使变位词部分更容易 我使用了循环和合并块 第一个字段是要解决的变位词 第二个字段是变位词的解决方案 因此调查可以根据受访者的答案来检查
  • 如何在 PHP 中替换/转义 U+2028 或 U+2029 字符以阻止我的 JSONP API 崩溃

    好的 我正在运行一个公共 JSONP API 数据由我的 PHP 服务器提供 我刚刚读了这篇文章 JSON 不是的 JavaScript 子集 作者 Magnus Holm 2011 年 5 月 http timelessrepo com

随机推荐

  • 每分钟有多少个请求被视为“重负载”? (近似)

    人们经常在他们的 优化和性能相关 问题和答案中谈论 重负载 我试图在典型服务器上的常规 Web 应用程序的上下文中 以 SO 及其相当小的基础设施为例 以每分钟的请求数来量化这一点 假设它们立即返回 以简化并获取数据库速度 等式之外 我正在
  • Android 自定义 EditText 在 ICS 中不显示光标

    我的应用程序中有一个 EditText 它仅接收来自我放置在屏幕上的按钮的输入 为了避免出现软键盘 我有一个自定义的 EditText 类 如下所示 public class CustomEditText extends EditText
  • “不为空”和“不为空”有什么区别

    SELECT id FROM customers WHERE type IS NOT Null Versus SELECT id FROM customers WHERE NOT type IS NULL 上述任何一个返回的数据都将完全相同
  • sp_getapplock 无事务

    我正在实现内部没有事务的存储过程 事实上 它会 但仅限于特定地点 以将时间减少到最少 存储过程的本质是我一次只想运行一个 我尝试使用 sp getapplock 但很快发现它需要在事务内部 是否有其他选择可以在整个过程上锁定但不将其包装到事
  • 没有为类型“QuerySnapshot”定义 getter“文档”

    尝试从 Firestore 实时数据库访问数据 但我一直收到此消息和其他几条消息 在这种情况下我该如何访问数据 先感谢您 class HomePage extends StatefulWidget override HomePageStat
  • 如何在不单击表单的情况下触发表单上的默认按钮(winforms)?

    我有两个文本框 一个用于登录 ID 另一个用于密码 并且有一个按钮 提交 我需要一个获取登录 ID 和密码值的事件 即 无需单击鼠标 我需要调用此事件 只需按键盘上的 输入 即可 有谁能够帮助我 提前致谢 斯里尼 将按钮设置为表单上的接受按
  • 格式化 NumPy 数组

    我要这个 SP 1 2 3 1 1 000000e 00 2 000000e 00 3 000000e 00 2 1 630000e 01 1 990000e 01 1 840000e 01 3 1 630000e 01 1 990000e
  • 带有运行时构造函数参数的键控委托工厂?

    假设我有以下服务和组件 public interface IService void DoWork public class ServiceA IService private readonly string name public Ser
  • Laravel - 填充数据库中缺失的日期和计数

    我需要根据我收到的日期发送每个日期的观看次数 request 从控制器中的查询中 我获取了如下所示的图表数据 time 2016 05 01 count 2 time 2016 05 02 count 3 time 2016 05 03 c
  • const 键和非 const 键有什么区别?

    下面两行有什么区别 map
  • 使用 Cordova 插件拍摄全景图像?

    是否可以使用某些 cordova 插件 在 X 轴和 Y 轴 拍摄全景图像 感谢您的任何建议 相机插件启动设备的相机应用程序 所以我想在带有全景相机应用程序的手机上 您可以从科尔多瓦应用程序中拍摄全景图 用户必须手动选择该功能 否则你必须要
  • C# .NET 应用程序设置和升级

    我使用 Settings Default MySettingName 和 Settings Default Save 来保存和加载设置 当我更改版本号时 如何从旧版本获取设置并将其应用到新版本 我只是不太明白 Settings Upgrad
  • 使用 JavaScript 显示/隐藏图像

    我有一个 HTML 页面 其中包含一个通过 CSS 设置为不可见的图像visibility hidden 我想创建一个名为 显示图像 的链接 这样当我单击它时 就会出现图像 现在 我不知道如何建立这样的链接 因为通常与 a href 链接到
  • ChatBot 在 Web 模拟器中无法运行,但在本地 Bot Framework 模拟器中运行良好

    我开发了与 SharePoint On Premise 集成的 ChatBot 当我在模拟器中调试 ChatBot 时 它可以工作 但是 当我使用 DirectLine 在 Azure 中的 Web 模拟器和公司网站托管的网站上进行调试时
  • 为什么 Symantec CSR 检查程序认为我的 CSR 在 AlgorithmIdentifier 中缺少 NULL 值? RFC3279

    由于许多令人不快的原因 我一直在尝试使用 bouncycastle API 手动构建自己的证书签名请求 表面上 我选择这样做是因为我需要 CSR 的预签名版本 以便使用存储在 HSM 中并在 LMK 下加密的密钥生成 sha256withR
  • 非交互模式的 Powershell 测试

    我有一个可以手动运行或可以通过计划任务运行的脚本 我需要以编程方式确定我是在非交互模式 通过计划任务运行时设置 还是正常模式下运行 我用谷歌搜索了一下 我能找到的最好的方法是添加命令行参数 但我没有任何可行的方法来处理计划任务 也不能合理地
  • 当我运行“gatsbydevelopment”时,安装“sharp”模块出现错误,显示错误

    gatsby develop success openly and validate gatsby configs 0 005 s error Something went wrong installing the sharp module
  • 无法在 go 中用作赋值类型

    当我编译代码时 收到以下错误消息 不知道为什么会发生 有人可以帮我指出为什么吗 先感谢您 不能使用 px InitializePaxosInstance val 类型 PaxosInstance 作为 在赋值中输入 PaxosInstanc
  • Laravel 5.2 队列忽略 .env

    我有一个 Laravel 5 2 应用程序 当用户购买产品时它会发送几封电子邮件 电子邮件视图包含对一些图像的引用 如下所示 img src 这在我拥有的所有 3 个环境中都运行良好 本地 登台和生产 asset 使用每个环境中配置的 AP
  • 验证码解码

    我见过一些验证码使用 javascript php 等进行解码 他们是如何做到的 比如很受欢迎的超级上传 site s 验证码也已被解码 http herecomethelizards co uk mu captcha 我是一名图像处理专家