V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hualishu
V2EX  ›  Android

用 JFinal 生成随机验证码

  •  
  •   hualishu · 2016-02-17 17:41:02 +08:00 · 10911 次点击
    这是一个创建于 3193 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这篇文章,介绍利用 JFinal 的 CaptchaRender 生成随机验证码,效果如下:

    Alt text
    验证码区分大小写,输入正确访问博客首页,否则停留在登录页面。
    IndexController.java

    ``package com.demo.index;

    import com.jfinal.core.Controller;
    import com.jfinal.ext.render.CaptchaRender;

    /**
    * IndexController
    */
    public class IndexController extends Controller {
    public void index() {
    render("index.html");
    }

    private static final String RANDOM_CODE_KEY = "1";

    public void login() {
    String inputRandomCode = getPara("inputRandomCode");
    boolean loginSuccess = CaptchaRender.validate(this, inputRandomCode, RANDOM_CODE_KEY);
    if (loginSuccess) {
    redirect("/blog");
    } else {
    index();
    }
    }

    public void img() {
    CaptchaRender img = new CaptchaRender(RANDOM_CODE_KEY);
    render(img);
    }
    }``

    源码下载

    12 条回复    2016-02-18 18:18:03 +08:00
    hualishu
        1
    hualishu  
    OP
       2016-02-17 17:43:39 +08:00
    markdown 插入代码 怎么弄? 问下大家
    belin520
        2
    belin520  
       2016-02-17 17:48:11 +08:00
    你应该尝试发一篇《细谈 Android 架构》我觉得这里的朋友会喜欢更多。
    admol
        3
    admol  
       2016-02-17 17:49:01 +08:00
    ```
    三个
    ```
    lll000lll
        4
    lll000lll  
       2016-02-17 19:13:14 +08:00
    hao
    Troevil
        5
    Troevil  
       2016-02-17 19:19:37 +08:00
    jfinal 的自带的这个验证码好像是 md5 存到 cookies , 理论上无限爆破
    blackboom
        6
    blackboom  
       2016-02-18 00:05:24 +08:00
    @Troevil 确实是 cookies 保存
    hualishu
        7
    hualishu  
    OP
       2016-02-18 10:38:02 +08:00
    @belin520 好的,我想想 该怎么发
    hualishu
        8
    hualishu  
    OP
       2016-02-18 10:38:12 +08:00
    @admol 我试一下
    ppwangs
        9
    ppwangs  
       2016-02-18 11:20:32 +08:00
    区分大小写不理性
    hualishu
        10
    hualishu  
    OP
       2016-02-18 11:55:41 +08:00
    @ppwangs 插入代码还是有问题啊
    raysonx
        11
    raysonx  
       2016-02-18 14:02:30 +08:00 via iPad
    这验证码。。。几分钟就能写个程序把它识别掉。
    后面的背景噪线特征明显,直接过滤颜色就可滤掉。
    纵向投影分割掉字符后,随便一个分类算法就能识别了。
    建议不要为验证码而验证码。
    Troevil
        12
    Troevil  
       2016-02-18 18:18:03 +08:00
    @raysonx ... 验证码用的 cookies 验证的. 直接保存 cookies 上面 的 那串 md5 就 OK , 上验证码识别就是用了牛刀了, 这个功能可能也是给出官方给出的一个例子吧, 可用性不强
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 09:28 · PVG 17:28 · LAX 01:28 · JFK 04:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.