我在寻找一个替代JCaptcha,这似乎不够维持的任何更多,并不是非常好的开始。替换已经将很好地与java ee web.

我可以看到,有三个选项:

  • JCaptcha-不再保留,原API
  • SimpleCaptcha-好得多API,更好的验证码,但是似乎只Java6
  • 验证码-容易使用,使用远程网络的服务产生的验证码,但没有多少控制的外观和感觉

有任何人使用任何其他人,他们会推荐吗?

有帮助吗?

解决方案

验证码 是唯一的验证你应该使用,因为它是唯一的验证,使世界变得更(改善OCR结果对旧文本),几乎是无限的数据库。

所有其他的验证码是通常局限于通过其数据库,或者做什么好这个世界。

编辑::我发现的步骤,如何实现验证码使用验证码。

你可以检查线上和线下使用java验证码 在这里,

其他提示

我是作者 SimpleCaptcha.同时我建议--对人类的缘故,使用验证码在哪里你可以,我设SimpleCaptcha因为一些组织的政策禁止库等验证码。SimpleCaptcha是意味着被完全独立的,没有外部的依赖:只要你在J2EE容器,应该是良好的。

此外,SimpleCaptcha现在可用于Java1.5或Java6.

会发生什么时验证码是下不可用的?没有你的服务只是停下来?你只是停止签名人,当它下来?你允许用户登录了,即使如果验证码是不跑?如果是这样,什么是安全的影响这个吗?特别是如果您使用验证码不仅仅是注册的,例如重新设置密码的形式,登录的形式,...这将是不可接受的使用没有验证码组成部分。

Java世界的验证码是一个可悲的状态,与SimpleCaptcha似乎最好的解决方案为那些我们外出那里无法接受托管服务。

我创造的 http://kaptcha.googlecode.com 之前成为验证码作为受欢迎,因为它是今天。它还提供了你的能力主自己,这可能需要在一些情况。

Kaptcha是一个重大的修改和更新版本的SimpleCaptcha和支持JDK5/6中。

SimpleCaptcha是非常好的和易于使用。

这里有一个例子如何使用SimpleCaptcha与JSF2.0(网页有一个例子JSP)

注意,我甚至没打扰到储存的验证码的价值在bean,我只是验证。

豆:

// imports missing here

@ManagedBean
@SessionScoped
public class LoginBean implements Serializable
{
    public void validateCaptcha(FacesContext context,
            UIComponent componentToValidate,
            Object value)
            throws ValidatorException
    {
        HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
        Captcha secretcaptcha = (Captcha) session.getAttribute(Captcha.NAME);
        if (secretcaptcha.isCorrect(value.toString()))
            return;

        // optional: clear field
        ((HtmlInputText) componentToValidate).setSubmittedValue("");

        throw new ValidatorException(new FacesMessage("Captcha does not match"));
    }
}

相关段的facelet:

        <h:form id="CaptchaForm">
            Type this: <br/>
            <h:graphicImage id="CaptchaImgID" value="/simpleCaptcha.png"/> <br/>
            <h:inputText id="CaptchaID"
                         required="true"
                         requiredMessage="Captcha missing"
                         validator="#{loginBean.validateCaptcha}"
                         validatorMessage="Captcha does not match"
                         immediate="true">
            </h:inputText>
            <br/>
            <h:commandButton value="Check"/>

            <p/>
            <!-- message for the input field -->
            <h:message id="CaptchaMsgID" for="CaptchaID" style="color:red" />
        </h:form>

相关段web.xml:

<servlet>
    <servlet-name>SimpleCaptcha</servlet-name>
    <servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>
<init-param>
    <param-name>captcha-width</param-name>
    <param-value>250</param-value>
</init-param>
<init-param>
    <param-name>captcha-height</param-name>
    <param-value>75</param-value>
</init-param>
</servlet>
<servlet-mapping>
    <servlet-name>SimpleCaptcha</servlet-name>
    <url-pattern>/simpleCaptcha.png</url-pattern>
</servlet-mapping>

享用:-)

Kaptcha是一个很好的替代验证码如果你是在寻找东道你自己的验证服务,而不是依赖于一个第三方验证服务(如验证码).

我能得到源(一个由一浏览器,不文件-()并建立与1.5.我有一个问题JAVA1.5版扔了坏类版本的错误(在一个时编制与老年java version是搞砸了),这是解决当我复制的罐子是我造自己,它就像一个特色。我强烈建议任何人使用这个。我试图jcaptcha和我必须说它糟透了..访问的网页不应有斗争的验证码图像,击败的目的。...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top