闭门造车系列:想了一个简单的验证码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
coyove
V2EX    分享创造

闭门造车系列:想了一个简单的验证码

  •  
  •   coyove
    coyove 2016-05-11 13:32:09 +08:00 5180 次点击
    这是一个创建于 3442 天前的主题,其中的信息可能已经有所发展或是发生改变。

    找到红点最后移动到的位置:

    github 地址: https://github.com/coyove/DynCaptcha

    演示: https://www.libay.nl/dyncaptcha

    用户可以用鼠标指针跟着目标走,基本上 100%识别率。

    每个圆点移动过程分两段直线路程,第一段直线为随机方向,第二段路程才会移向最终目标位置,主要考虑的是不能让破解者通过前几帧计算出运动方向(斜率),从而直接得到坐标。

    当然如果在运动过程中红点与其他白点重合的次数太少,那么跟踪也是很容易的。

    个人感觉为了继续增加难度:

    1. 增大圆点的直径
    2. 每个点的运动路程为多段折线
    3. 提高背景噪点强度

    不过既然是闭门造车,欢迎大家批评。

    第 1 条附言    2016-05-11 16:14:45 +08:00

    实际操作的话用鼠标跟踪基本上不会漏掉,不过正如大家所说,看的会比较累,需要全神贯注才行。作为通用验证码来说意义不高

    45 条回复    2016-05-12 13:50:19 +08:00
    AKI
        1
    AKI  
       2016-05-11 13:34:44 +08:00   1
    东西没啥问题。但是使用成本很高。用你这东西注册率都能降低 90%。
    coolzjy
        2
    coolzjy  
       2016-05-11 13:36:49 +08:00
    时间成本啊时间成本。。。。
    coolzjy
        3
    coolzjy  
       2016-05-11 13:37:43 +08:00
    另外我一次也没找到,一动就看晕了
    loading
        4
    loading  
       2016-05-11 13:37:52 +08:00   1
    先不说我没时间,眼睛瞎了你赔我?
    linauror
        5
    linauror  
       2016-05-11 13:39:13 +08:00
    现在的难度就挺大的,移动过程中很多都有重合的时候,就分不清哪个是哪个了
    coyove
        6
    coyove  
    OP
       2016-05-11 13:40:39 +08:00
    @loading
    @coolzjy

    实际应用的时候图要 200%放大,原图只有 128x128 ,分辨率太高的话没法在一个可以接受的时间内计算出来
    ovear
        7
    ovear  
       2016-05-11 13:42:49 +08:00
    。。。我的眼睛。。。
    gamexg
        8
    gamexg  
       2016-05-11 13:43:52 +08:00
    靠下面的那一个红点我真不确定最后的位置。
    太多的点击到一起,根本分不出来了...
    coyove
        9
    coyove  
    OP
       2016-05-11 13:52:03 +08:00
    额,看来是我想当然了,我给几个室友试验了一下,确实有点累
    Slienc7
        10
    Slienc7  
       2016-05-11 13:59:42 +08:00
    这个识别起来可能比单纯扭曲验证码还简单。
    leozy2014
        11
    leozy2014  
       2016-05-11 14:01:13 +08:00
    太容易程序识别。。。。就失去了验证码的意义
    loading
        12
    loading  
       2016-05-11 14:04:55 +08:00
    手机上没法用!
    jugelizi
        13
    jugelizi  
       2016-05-11 14:16:01 +08:00
    程序员的思维
    码农都很自负啊
    just1
        14
    just1  
       2016-05-11 14:16:52 +08:00 via Android
    手机上什么红点都没有~
    iyaozhen
        15
    iyaozhen  
       2016-05-11 14:20:26 +08:00 via Android
    这。。。用户还不得打死你
    Marfal
        16
    Marfal  
       2016-05-11 14:24:50 +08:00 via iPhone
    应该移到不靠谱茶话会去,这没有一点的易用性,而且程序识别也不困难。
    yech1990
        17
    yech1990  
       2016-05-11 14:26:18 +08:00 via Android
    我觉得思路是挺新的,小建议
    1 ,点数不能太多,太多看得晕
    2 ,固定形状的物体路径追踪对计算机来说已经没有太大难度了,能否在运动的过程加入形变
    3 ,背景的噪点对干扰自动识别能起多大作用?这一点有待商权
    wjfz
        18
    wjfz  
       2016-05-11 14:29:08 +08:00
    如果这么做呢?

    “输入图中红色文字”
    然后验证码图片中红色和别的颜色混合输出。
    boter
        19
    boter  
       2016-05-11 14:29:30 +08:00 via iPhone
    思路挺新颖 不过用户肯定不买账
    dphdjy
        20
    dphdjy  
       2016-05-11 14:29:32 +08:00 via Android
    增加各种变换和速率, CSS3 写原型不错
    weaponX
        21
    weaponX  
       2016-05-11 14:41:09 +08:00
    伤眼,浪费时间,惨死。
    7654
        22
    7654  
       2016-05-11 14:46:31 +08:00
    居然重叠了,这让人怎么找
    daodao
        23
    daodao  
       2016-05-11 14:47:40 +08:00
    防住的不仅仅是机器人 还有想用你产品的用户...
    delogn
        24
    delogn  
       2016-05-11 14:50:10 +08:00
    感觉可以减少数量,减少到 3 个或者 4 个。然后把圆点放大,或者加一点动效,例如辐射效果什么的。应该还不错的。
    northisland
        25
    northisland  
       2016-05-11 14:55:08 +08:00
    看了一楼我就 目害 了
    momo5269
        26
    momo5269  
       2016-05-11 15:07:59 +08:00
    密集恐惧症怎么办?
    移动平台缩放 /太小怎么办?
    有些人输入慢可能导致不断刷新怎么办 = =


    真想注册的验证码复杂点不是什么大事情,问题你这伤害眼睛啊
    kuannz
        27
    kuannz  
       2016-05-11 15:34:52 +08:00
    想法不错啊,但是点太多就很难分辨了
    wlsnx
        28
    wlsnx  
       2016-05-11 15:44:30 +08:00
    这个动画时间有多长,我要一直盯着?
    newbieo0O
        29
    newbieo0O  
       2016-05-11 15:46:52 +08:00
    还是 Google 的反验证码好用,点一下就行了。
    qiuai
        30
    qiuai  
    PRO
       2016-05-11 15:51:55 +08:00
    我瞬间眼就花了......
    rubyvector
        31
    rubyvector  
       2016-05-11 15:55:38 +08:00
    看成芯片焊点了,晕
    wheatcuican
        32
    wheatcuican  
       2016-05-11 15:56:23 +08:00
    我的眼睛!!!
    processzzp
        33
    processzzp  
       2016-05-11 16:41:57 +08:00
    目前验证码发展的大方向是 Google reCAPTCHA 那样的,用户不需要做过多的操作,只需要进行简单的点击或者滑动滑块,由后台计算判断用户是否为真人,提高用户体验的同时还能保证识别率。楼主的这个方法恰好是反其道而行之.... ...

    而且楼主考虑过手机用户的感受没?大家的眼睛都已经如此疲劳了,为何还要互相伤害?
    wclebb
        34
    wclebb  
       2016-05-11 22:20:26 +08:00 via iPhone
    想想,红色色盲怎么办……
    logonod
        35
    logonod  
       2016-05-12 01:22:06 +08:00
    瞎了
    murmur
        36
    murmur  
       2016-05-12 07:58:41 +08:00
    。。这不是最强大脑里玩那个东西么。。
    simplesslife
        37
    simplesslife  
       2016-05-12 09:24:45 +08:00
    就知乎那个倒立的就行啊,简单,还不能被模拟
    yuuko
        38
    yuuko  
       2016-05-12 10:04:01 +08:00
    也是够了,一般的验证码都会输错,别说这个,估计能挡住 99%的用户
    realpg
        39
    realpg  
    PRO
       2016-05-12 11:33:02 +08:00
    这一个验证码图片要 100KB+了吧
    服务器流量扛不住
    创意不错……
    so898
        40
    so898  
       2016-05-12 11:38:25 +08:00
    上了这个估计用户要集体炸毛
    cocacold
        41
    cocacold  
       2016-05-12 11:50:45 +08:00
    额我要崩溃了。。
    honeyshine75
        42
    honeyshine75  
       2016-05-12 11:58:49 +08:00
    根本跟不上啊!!!
    void1900
        43
    void1900  
       2016-05-12 12:00:21 +08:00
    先不说图片,楼主我看文字都没看懂怎么用 哈哈哈哈
    goodryb
        44
    goodryb  
       2016-05-12 13:43:15 +08:00
    我要是客户,我就打死你了,眼睛都慌瞎了,堪比 12306
    xiangtianxiao
        45
    xiangtianxiao  
       2016-05-12 13:50:19 +08:00
    好像有不少论文都是解决多个点跟踪的算法的。。。比如说下面的这个视频
    竟然还有代码:
    https://github.com/Franciscodesign/Moving-Target-Tracking-with-OpenCV
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1048 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 23:02 PVG 07:02 LAX 16:02 JFK 19:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86