7

有很多非基于图像的验证码想法四处流传。但是老式的方法呢?

好的图像验证码的要素是什么?哪些视觉元素对计算机来说很难,但对人类来说更容易?那些错误,对于计算机来说比对人类来说更容易的元素呢?提高CAPTCHA 生成器速度的好技术有哪些?

这是我一直在研究的 CAPCHA 示例。它为两个正弦波生成函数,然后在它们之间拉伸一个文本。它将其放置在从图像池中提取的背景上。 基于图像的验证码

如何改进?(具体来说,我使用的是 PHP GD。)想到的事情是:

  • 更改文本的颜色,可能使其变为多色。
  • 添加轻微模糊文本的“划痕”或标记。
  • 添加失真,使其也受到水平正弦波的影响。

什么是一流的图像验证码?


编辑:我知道有一些非常有价值的第三方验证码资源。我正在寻找使它们变得更好的属性。我想使用自己的验证码,只是为了自我提升。所以,你可以谈论 reCAPTCHA,但这并不是我想要的。

此外,已经提出不仅图像很重要,体验也很重要,因此请随时发表评论。

4

10 回答 10

5

将每个字母/数字制作成图案,即不连接的点。这意味着除了模式识别(他们还没有)之外,计算机无法知道一个点是字母的一部分。然后是通常的扭曲和随机线条。

你如何做到这一点是一个挑战。

编辑:另外,不同形状的图案的奖励积分,并尝试在字符(边缘或整个字符)上使用 alpha 透明度,以便它们与背景合并。

于 2008-10-13T03:07:25.313 回答
4

使字母难以分开。使用类似手写的字体或添加连接字母的线条。减少和随机化字母之间的间距。

在其他轴上也添加波形失真。仅在一个轴上的失真可以相对容易地分析和逆转。

根本不用担心彩色背景。从其他颜色中自动过滤黑色非常容易。你的背景只会阻碍人类。

不要添加划痕或其他噪音,除非它的厚度与字母相同。去噪算法可以轻松去除比字母更薄的东西。

于 2008-10-18T21:25:44.620 回答
1

如果字母的颜色褪色成其他颜色怎么办……例如,5 可以从顶部的黄色开始,然后逐渐变成蓝色或其他颜色。选择的颜色应该是随机的。

使用多色背景可能会使计算机难以拾取背景结束和角色开始的位置。希望人类实际拾取图案不会太困难。

于 2008-10-13T03:28:52.820 回答
1

您可以在数据库中创建一个验证码表,而不是生成验证码,然后您自己通过在谷歌上搜索良好的验证码图像来创建该表。

所以不用担心“这种生成方法行得通吗?”

于 2014-04-17T09:03:42.070 回答
0

我真的很讨厌网站上的 CAPTCHA,它们只是让我烦恼,但如果您想尝试制作一个强大的验证码,请尝试以下操作:

  • 无需提交即可获得新图像的能力
  • 视障人士的口语版本
  • 不均匀的字符

我在一些网站上使用了 Recaptcha,这是一个很好且强大的解决方案。

或者,如果您想对它非常时髦,请查看以下内容:http ://research.microsoft.com/asirra/

于 2008-10-13T03:11:34.773 回答
0

试图破解验证码的算法是模式匹配器,它们通过几种不同的方式工作:缩放和倾斜他们已经知道的符号,查找和跟踪边缘,以及计算内部孔以提供帮助。如果您可以将字母分成几块,改变字母质量,或在字母上添加粗线条或“划痕”,这些技巧将有所帮助。然而,考虑到我们为此目的提供了recaptcha ,所有这一切都没有实际意义,而且它是一个很棒的第三方应用程序。此外,验证码将有助于您网站的安全,但不会阻止那些真正受到诱惑的人。

于 2008-10-13T03:15:17.403 回答
0

警惕 ReCaptcha 的建议。我已经向它提交了几十次错误的输入,并且每次都成功了。有几次我为这两个词提交了错误的输入,而不仅仅是最模糊的词;正如我所说,成功率是 100%。

我还认为基于图像的验证码对用户是不利的,应尽可能避免。基于文本的解决方案的优势在于,您可以根据站点的受众对其进行定制,增加一定程度的隐蔽性,当机器对基于文本的解决方案变得更加精通时,它们可能会绊倒机器。

至少,不要一直使用它:(来源:codinghorror.com橙

于 2008-10-13T03:20:20.357 回答
0

我喜欢KittenAuth和 Microsoft 的Asirra项目的想法。这个想法是,虽然 OCR 最终会演变为打破您的传统验证码,但区分小猫和狗的能力是一个复杂许多数量级的问题,而对人类来说绝对微不足道。

这个解决方案虽然可能是有史以来最性感的验证码想法,但它的局限性在于不容易移植到听力受损的方法中。

于 2008-10-13T06:01:26.460 回答
0

剪切和改组乐队以破坏显示和仅鼠标输入呢?

从你的正弦波变形文本开始,分成水平带,甚至是网格。

这使得光学识别更难,并且可能让你避免那种让人类难以识别验证码的讨厌的背景游戏。

对于您可以在浏览器中依赖本地拖动的站点,而不是输入条目,而是使用洗牌要求用户重新排序作品(只是按照草率的顺序,而不是像其中一个谜题)。或者,如果您想单独使用点击,则可以使用经典的滑动瓷砖拼图。

请注意,我遇到了一个验证码,您必须在其中识别 N 部卡通中的哪一部有动物成功阻止了我!

Wellington Gray很好地总结了 AI CAPTCHA 竞赛。

于 2009-01-26T04:30:08.767 回答
0

您可以添加一个随机的字体数组,以便 GD 使用不同的字符呈现每个字符。

于 2009-02-09T14:47:21.580 回答