V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
coyove
V2EX  ›  分享创造

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

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

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

    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  
       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  
       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   ·   实用小工具   ·   2045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.