![Image-based CAPTCHA](https://farm4.static.flickr.com/3178/2936174357_fc9e92b881_m.jpg?iwonderwhollnoticethis)
- 改变文本的颜色,可能使其变成彩色。
- 添加“划痕”或标记,轻微地遮盖文本。
- 增加扭曲程度,使其水平受正弦波影响。
制作优秀图像CAPTCHA需要哪些因素?
编辑:我知道有一些非常有价值的第三方CAPTCHA资源。我正在寻找使它们好的属性。我想使用自己的CAPTCHA,仅出于自我提高的目的。所以,您可以谈论reCAPTCHA,但它并不完全是我要找的。
另外,有人提到不仅图像,体验也很重要,所以请随意评论。
制作优秀图像CAPTCHA需要哪些因素?
编辑:我知道有一些非常有价值的第三方CAPTCHA资源。我正在寻找使它们好的属性。我想使用自己的CAPTCHA,仅出于自我提高的目的。所以,您可以谈论reCAPTCHA,但它并不完全是我要找的。
另外,有人提到不仅图像,体验也很重要,所以请随意评论。
使用图案制作每个字母/数字,例如未连接的点。这意味着计算机无法知道一个点是字母的一部分,除非进行模式识别(他们尚未拥有)。然后进行通常的扭曲和随机线条。
如何实现这一点是挑战。
编辑:此外,对于不同形状的图案,可以尝试在字符上使用alpha透明度(在边缘或整个字符上),使其与背景融合。
让字母难以分离。使用类似手写的字体或添加连接字母的线条。减少并随机化字母间的间距。
在其他轴上加入波形扭曲。只扭曲一个轴相对容易分析和矫正。
完全不要纯色背景。自动过滤黑色与其他颜色非常容易,而您的背景只会给人带来困扰。
不要添加划痕或其他噪音,除非其厚度与字母相同。去噪算法可以轻松移除比字母更细的物体。
不必生成验证码,您可以在数据库中创建一个验证码表,并通过Google搜索好的验证码图像来自己创建该表。
因此,不需要担心“这种生成方法是否有效?”
如果字母的颜色逐渐变淡成其他颜色会怎样……例如数字5可以从黄色开始,逐渐变成蓝色或其他颜色。所选颜色应该是随机的。
有了多彩的背景,计算机可能很难分辨出背景和字符的分界线……希望对人类来说不会太难以识别模式。
你可以添加一个随机字体数组,这样GD就会使用不同的字体渲染每个字符。
关于剪切和洗牌带来的显示和仅鼠标输入的混淆,您怎么看?
首先,将您的正弦波变形文本分成水平带或甚至网格。
这使得光学识别更加困难,并且可能使您避免那些使一些验证码对人类而言很难的恶意背景游戏。
对于一个可以依赖于浏览器中的本地拖放的站点,而不是在输入框中输入条目,使用洗牌需要用户重新排序碎片(只需松散排序,而不像那些拼图一样)。或者,如果您只想使用点击,可以使用经典的滑动拼图。
请注意,我曾经遇到过一个验证码,您必须确定N个卡通中哪一个有动物,这使我无法通过!
Wellington Grey 很好地总结了AI CAPTCHA竞赛。
我真的很讨厌网站上的验证码,它们只会让我烦恼。但是如果你想尝试制作一个强大的验证码,请尝试以下方法:
我在几个网站上使用了Recaptcha,这是一个不错且强大的解决方案。
或者,如果你想要真正时髦,请查看这个链接:http://research.microsoft.com/asirra/
对于ReCaptcha的建议要谨慎。我曾经多次提交错误的输入,其中有几次我提交了两个单词的错误输入而不仅仅是最难辨认的那个单词;正如我所说,成功率达到了100%。
我还认为基于图像的CAPTCHA对用户不友好,应尽可能避免使用。文本解决方案的优点在于您可以根据网站的受众量身定制它们,增加一定程度的模糊性,这可能会使机器在处理文本解决方案时变得更加聪明。
至少不要总是使用这个:
(来源: codinghorror.com)
我喜欢KittenAuth和微软的Asirra项目的想法。这个想法是,虽然OCR最终会发展出破解传统验证码的能力,但区分小猫和小狗的能力对于人类来说要复杂得多,而对于人类来说却非常简单。
尽管这种解决方案可能是有史以来最性感的验证码想法,但它的局限性在于不易移植到听障方法中。