论坛首页 Java企业应用论坛

使用谷歌的kaptcha验证码被破解了

浏览 41714 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-24  
谢谢各位的关注,确实是个很头疼的问题,辨认复杂会导致用户麻烦,导致流量下降,容易辨认的话破解就简单些
0 请登录后投票
   发表时间:2011-05-25  
kfyfly 写道
谢谢各位的关注,确实是个很头疼的问题,辨认复杂会导致用户麻烦,导致流量下降,容易辨认的话破解就简单些


我刚刚看了下,如果你需要重叠的话,可以修改下源码

把源码中的5行注释掉,就可以配置为负数了,这样字母之间就可以重复了。
/** */
	public int getPositiveInt(String paramName, String paramValue,
			int defaultInt)
	{
		int intValue;
		if ("".equals(paramValue) || paramValue == null)
		{
			intValue = defaultInt;
		}
		else
		{
			try
			{
				intValue = Integer.parseInt(paramValue);
//				if (intValue < 1)
//				{
//					throw new ConfigException(paramName, paramValue,
//							"Value must be greater than or equals to 1.");
//				}
			}
			catch (NumberFormatException nfe)
			{
				throw new ConfigException(paramName, paramValue, nfe);
			}
		}
		return intValue;
	}


把字体间的间距修改为负数,就会有重叠的效果
<prop key="kaptcha.textproducer.char.space">-5</prop>
						 <prop key="kaptcha.textproducer.font.names">华文彩云,华文行楷,方正舒体,华文隶书,幼圆,华文琥珀</prop>


把字体设置为不同的字体,这样机器在识别的时候也有难度的。

还有你也可以修改显示的颜色,这个需要改代码
Font[] fonts = getConfig().getTextProducerFonts(fontSize);
		Color color = getConfig().getTextProducerFontColor();


font是随机设置的,color也可以的。

可以参考
package com.google.code.kaptcha.text.impl;
public class DefaultWordRenderer extends Configurable implements WordRenderer


希望对楼主有帮助,

0 请登录后投票
   发表时间:2011-05-25  
matychen 写道
kfyfly 写道
谢谢各位的关注,确实是个很头疼的问题,辨认复杂会导致用户麻烦,导致流量下降,容易辨认的话破解就简单些


我刚刚看了下,如果你需要重叠的话,可以修改下源码

把源码中的5行注释掉,就可以配置为负数了,这样字母之间就可以重复了。
/** */
	public int getPositiveInt(String paramName, String paramValue,
			int defaultInt)
	{
		int intValue;
		if ("".equals(paramValue) || paramValue == null)
		{
			intValue = defaultInt;
		}
		else
		{
			try
			{
				intValue = Integer.parseInt(paramValue);
//				if (intValue < 1)
//				{
//					throw new ConfigException(paramName, paramValue,
//							"Value must be greater than or equals to 1.");
//				}
			}
			catch (NumberFormatException nfe)
			{
				throw new ConfigException(paramName, paramValue, nfe);
			}
		}
		return intValue;
	}


把字体间的间距修改为负数,就会有重叠的效果
<prop key="kaptcha.textproducer.char.space">-5</prop>
						 <prop key="kaptcha.textproducer.font.names">华文彩云,华文行楷,方正舒体,华文隶书,幼圆,华文琥珀</prop>


把字体设置为不同的字体,这样机器在识别的时候也有难度的。

还有你也可以修改显示的颜色,这个需要改代码
Font[] fonts = getConfig().getTextProducerFonts(fontSize);
		Color color = getConfig().getTextProducerFontColor();


font是随机设置的,color也可以的。

可以参考
package com.google.code.kaptcha.text.impl;
public class DefaultWordRenderer extends Configurable implements WordRenderer


希望对楼主有帮助,


谢谢楼上的兄弟,我再试试
0 请登录后投票
   发表时间:2011-10-22   最后修改:2011-10-22
楼主,你看一下我这个,用户体验应该还是比较好的。
用户输入也不会太麻烦。就算让他识别到编号也没有关系。
因为机器人不知道应该提交哪些编号。
但是,如果,机器人连这些图像都能识别的话那就没办啦。
你看一下效果:http://www.iteye.com/topic/1116904



  • 大小: 8.7 KB
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics