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

论 12306 新验证码

  •  2
     
  •   1023400273 · 2015-03-17 13:03:24 +08:00 · 8693 次点击
    这是一个创建于 3543 天前的主题,其中的信息可能已经有所发展或是发生改变。
    12306新验证码有点任性,采用的是找图片的方式来验证用户行为,如下


    请问这种验证码对于那些抢票软件来说,有没有杀伤力?

    个人感觉这种验证码其实就是有一个图库,是否可以采用标识md5指纹或者提取图片的特征来判定该图片所对应的物品?再进行采集所有的图片建立一个对应数据库?
    51 条回复    2015-03-18 14:51:50 +08:00
    yuankui
        1
    yuankui  
       2015-03-17 13:09:44 +08:00   ❤️ 1
    你这么任性,肯定会被12306发现的
    andybest
        2
    andybest  
       2015-03-17 13:15:30 +08:00   ❤️ 1
    把“水表”两个字增加一种字体或者换个位置,就够做这个库的喝一壶
    cxl008
        3
    cxl008  
       2015-03-17 13:28:12 +08:00   ❤️ 1
    用app的接口如何?
    Tiande
        4
    Tiande  
       2015-03-17 13:31:01 +08:00   ❤️ 1
    付款的时候出这些验证码会好点吧。
    黄牛一堆号提前登陆上去,照常刷票。
    loading
        5
    loading  
       2015-03-17 13:32:13 +08:00   ❤️ 1
    希望有人榨干这个验证码,为我们服务,把他做成公共服务,只要认证都用这个,这个代表最高水平。
    kisshere
        6
    kisshere  
       2015-03-17 13:35:25 +08:00 via Android   ❤️ 1
    各种验证码破解还不是用人工方式来破解的,请一些残疾人或者大妈大叔or大学狗来识别,也就是说这种验证码跟以前的文字验证码毫无区别
    xiaogui
        7
    xiaogui  
       2015-03-17 13:41:22 +08:00   ❤️ 1
    @loading 这个方法不错。
    lxrabbit
        8
    lxrabbit  
       2015-03-17 13:46:06 +08:00   ❤️ 1
    我也希望更多的人来破解这个验证码,这样12306就会在关键的时候推更多方式的验证码,然后破解验证码的人就可以在关键时刻得到更多的回报,一个XX识别插件50块一个人(注意我说的不是黄牛),想来也是很赚的吧
    ryd994
        9
    ryd994  
       2015-03-17 13:48:40 +08:00   ❤️ 1
    不知道图库多大,多久换啊,这种情况下就只能模式识别了,模式识别是学界研究中的课题之一,难度很高。
    过一段时间看看图库不大,或者很久不换的话,确实可以直接抓数据背答案
    lxrabbit
        10
    lxrabbit  
       2015-03-17 13:51:21 +08:00   ❤️ 2
    @andybest 但是我觉得把"水表"换成拼音更好呢
    beimenjun
        11
    beimenjun  
       2015-03-17 13:52:32 +08:00   ❤️ 1
    每个月稍微把所有图片的几个像素点颜色变一下,MD5什么的就废了。

    另外就是定期通过搜索引擎来更新图库,应该可以让机器识别的准确率下降。
    loading
        12
    loading  
       2015-03-17 13:53:24 +08:00   ❤️ 1
    @lxrabbit 旋转一下就晕菜一片人类和程序!拼音不是所有人都学得好的。
    expkzb
        13
    expkzb  
       2015-03-17 14:08:44 +08:00   ❤️ 1
    1023400273
        14
    1023400273  
    OP
       2015-03-17 14:11:52 +08:00
    @loading 哈哈,这个方法好啊,又可以为自己服务又可以采集图片
    1023400273
        15
    1023400273  
    OP
       2015-03-17 14:13:40 +08:00
    @expkzb 看来还是广大人民的智慧高啊
    ryd994
        16
    ryd994  
       2015-03-17 14:17:27 +08:00 via Android   ❤️ 1
    @beimenjun 还是能计算相似度的,太离谱了人也看不出来,调对比对亮度也是同理。主要还是怕换图
    aa45942
        17
    aa45942  
       2015-03-17 14:32:48 +08:00   ❤️ 1
    其实我觉得用水表用图片描述的的方式更能晕菜一批人,比如和下图物体同一类型的图片
    ahtsiu
        18
    ahtsiu  
       2015-03-17 14:41:37 +08:00   ❤️ 1
    哈,上面那个logo 就是用来干扰的吧,过几天把logo 在图片上的位置换一换就行了
    huxiao1104
        19
    huxiao1104  
       2015-03-17 14:44:11 +08:00   ❤️ 1
    这点小验证码就能搞倒黄牛?我朝的黄牛们可不是吃素的。。= =
    learnshare
        20
    learnshare  
       2015-03-17 14:47:21 +08:00   ❤️ 1
    第三方工具面对这种验证码,不用识别,可以前期让用户手动输入,等到样本足够覆盖大部分图片的时候,就可以“自动”填写了。
    FinlayLiu
        21
    FinlayLiu  
       2015-03-17 14:49:16 +08:00   ❤️ 1
    https://github.com/andelf/fuck12306
    12306 图片验证码识别测试
    sadscv
        22
    sadscv  
       2015-03-17 14:52:50 +08:00   ❤️ 1
    我觉得这个验证可以通过google图片搜索的方式破解。
    先通过原先验证码识别技术识别需要验证的物体名字,再把生成的图片切割成8个小图,分别用google图片搜索,再采集搜索结果首页显示文字内容后对其匹配。
    而且我做了个简单实验,用QQ截图后上传搜索,发现识别效率高得惊人呐。
    Draplater
        23
    Draplater  
       2015-03-17 15:07:32 +08:00 via Android   ❤️ 1
    用HashCash能否解决这个问题?
    利用客观条件硬性限制刷新频率
    yanest
        24
    yanest  
       2015-03-17 15:40:17 +08:00   ❤️ 1
    @kisshere 我认识一个朋友,他们公司养了一帮录入员,就是各种单据的人工录入,曾经也接过人肉录入验证码的活,就是背后有一群人实时去人肉识别图片,把结果实时回传回去。
    efi
        25
    efi  
       2015-03-17 15:43:44 +08:00   ❤️ 1
    此贴内谁能验证任一识别软件对此验证码通过率大于50%的我赠送1000枚铜币。
    jeansfish
        26
    jeansfish  
       2015-03-17 15:43:54 +08:00   ❤️ 1
    @ahtsiu 铁路logo是用户点的,不是验证图片里的
    efi
        27
    efi  
       2015-03-17 16:11:31 +08:00 via Android   ❤️ 2
    Naive。没有CV的PhD就别揽这个瓷器活。

    图像分类state of the art深卷网GoogLeNet http://arxiv.org/abs/1409.0575 单张能到95%,八张加起来也就66%。一个黄牛公司也想破解,战斗力还差远了。

    要增加难度是很容易的,只有把物体放入场景之中,state of the art准确率单张是低于50%的。
    frozen2013
        28
    frozen2013  
       2015-03-17 16:12:25 +08:00   ❤️ 1
    不知道这里有没有专门等破解方法然后做成刷票软件卖给黄牛获利的人,如果有的,向你竖中指!
    coolicer
        29
    coolicer  
       2015-03-17 16:15:40 +08:00   ❤️ 1
    我觉得是故意的吧。如果非要限死,可以加多一条。实名手机号收验证短信,我感觉可以挡一部分人。
    asd7160
        30
    asd7160  
       2015-03-17 16:26:47 +08:00   ❤️ 2
    @efi 目前这个方案是最佳的: http://www.zhihu.com/question/28795373
    1023400273
        31
    1023400273  
    OP
       2015-03-17 16:28:45 +08:00
    @yanest 这样的成本会不会很高?

    @efi 高端,深深感到自己确实Naive了

    @coolicer 这也是一个好办法,但是每抢一次都要收一条短信会不会有点烦人?而且短信也有成本的
    yanest
        32
    yanest  
       2015-03-17 16:32:56 +08:00   ❤️ 1
    @1023400273 主要看做什么用了,费用是按件计费,不少快递公司、调查问卷、各种单据都是这么录入系统的
    coolicer
        33
    coolicer  
       2015-03-17 17:20:03 +08:00   ❤️ 1
    起码能证明大部分不是黄牛,短信值几个钱。车票都这么贵了
    propiram
        34
    propiram  
       2015-03-17 17:25:56 +08:00 via iPhone   ❤️ 1
    就只有我觉得那一张图对应一个静态固定地址,人工爬一遍之后一一对应上就OK了么…
    iamjs
        35
    iamjs  
       2015-03-17 17:38:08 +08:00
    淘宝开个接口。。。
    水表 关键字。。
    然后淘宝精准数据,拿出来商品图片3张 随机出几张其他玩意儿
    然后。。。好吧,我随便扯的
    club
        36
    club  
       2015-03-17 17:43:39 +08:00
    這個是跟Google學的,但是沒有Google做的完美。
    imn1
        37
    imn1  
       2015-03-17 18:07:35 +08:00   ❤️ 1
    这种验证码的非人工破解很难

    几个月之前在某验证码的帖子我说过,现时的验证码思想只是把“机器抄写”转为“人工抄写”,这个确认是否“人类”是不足够的,需要加入人的思考

    而12306的这次新验证码就达到这条,这里至少有两次思考过程,1.阅读理解(简体)汉字;2.从文字意思到影像

    所以前面各位都在讨论图像识别是找错方向,其中 #17 提到以图找图对人是难了,因为前面增加了一个“从影像到文字”的理解过程,但对计算机却是省了“理解文字”这个过程,反而简单了

    只要做很小的升级,就足以击败图像识别了
    例如:不写“水表”,写成“用于测量用水量的仪器”,要知道这样的描述性文字比起“水表”两字变化就多了
    “测量” -> “计量”、“计算”、“记录”……
    “用水量” -> “水容积”、“耗水量”、“流量”、“用水立方数”……
    “仪器” -> “仪表”、“工具”、“计量器”……
    如果机器不带人工智能理解汉语的话就只能暴力破解了

    图像做成不干扰视觉观看,但干扰数字分析的多帧 gif 就更有趣了
    f0rger
        38
    f0rger  
       2015-03-17 18:18:38 +08:00
    目前只有2个图片是符合的,抓包发现是POST位置信息,那么久不需要知道要点什么图片,反正位置就8个,8*7一共最多56种组合。
    如果接口没有做次数限制以及频率限制的话,破解还是挺快的啊。。。

    只是简单了解了一下,具体没深入,请勿喷
    nealnote
        39
    nealnote  
       2015-03-17 18:24:14 +08:00
    已经实验的结果,试的次数多,难度会增加(注意,红色的所有的)
    最多到 每行6张图片,共3行 3*6=18张图,选2个种类

    单选 - 多选 - 多图多选 - 封禁20秒
    squid157
        40
    squid157  
       2015-03-17 18:32:52 +08:00 via iPhone
    传说现在打码已经很多都是人工打码了。所以……

    我倒是觉得既然火车票本身就是实名的,随着RF的普及,身份证可以考虑使用更常见的无线协议,买票前也需要实体身份证认证。
    gkiwi
        41
    gkiwi  
       2015-03-17 18:45:46 +08:00
    已经有开源库了:

    https://github.com/andelf/fuck12306/

    23333
    konakona
        42
    konakona  
       2015-03-17 19:19:56 +08:00
    其实我觉得这个验证码挺有趣的……
    quericy
        43
    quericy  
       2015-03-17 19:58:13 +08:00   ❤️ 3
    gamexg
        44
    gamexg  
       2015-03-17 20:34:44 +08:00
    https://gist.github.com/GameXG/98b8811b25c6367aee30

    当时对付点触验证码的办法(google 图片搜索),稍微一改就应该能对抗12306.

    当时尝试过 baidu 图片搜索,结果一个结果都没有,google 的就能正常搜索到。
    caomaocao
        45
    caomaocao  
       2015-03-17 20:44:03 +08:00   ❤️ 1
    这个验证码不错的... 等于有2步识别过程 , 学CV的小硕表示搞不定
    kaneg
        46
    kaneg  
       2015-03-17 23:48:17 +08:00 via iPhone
    我觉得如果这种验证码能轻易用计算机识别,那人工智能就指日可待了
    9hills
        47
    9hills  
       2015-03-17 23:50:41 +08:00   ❤️ 1
    图像识别就可以,百度Google都有接口。

    不过这个东西确实能防住一般人,但是防不住百度Google把图像识别的接口给发布出来。。。
    TerranC
        48
    TerranC  
       2015-03-18 00:19:48 +08:00
    手机版更搞笑这验证码
    aa45942
        49
    aa45942  
       2015-03-18 10:30:29 +08:00
    @imn1 不,计算机理解文字可以用ocr,难度不大,但是要理解图片本身描述的内容就难了,单纯靠计算机很难识别出图片中某只动物是什么物种(比如猫),或者识别图片中人物的性别,那是一个大工程(google都没能做到的事情)。计算机能理解图片的话,距离人工智能的出现也就不远了
    ps:现在计算机理解图片还是要靠人工匹配、学习,实际上识别过程只是一个图片对比的过程,图片的对比度、颜色相似程度高就匹配成功,但需要的样本量非常巨大,软件设计成本也会非常高
    如果再高级一点:把和下图一样的东西旋转到正方向,估计绝大部分软件都得抓瞎,即便你匹配成功了,怎么旋转都是问题
    ironman
        50
    ironman  
       2015-03-18 11:43:28 +08:00
    12306被玩坏了哈哈
    imn1
        51
    imn1  
       2015-03-18 14:51:50 +08:00
    @aa45942
    其实你这种属于很典型的单向思维
    1.OCR确实很简单,但只能算识别文字,而不是理解;理解文字就难了,机器翻译至今还很糟糕;不妨想想音乐,音乐符号少的很,但近一个世纪以来,音乐的归类/分类却一直在变化
    2.人之所以能快速辨别实物,是因为所看到的事物具有某几种特征,当特征模糊的时候就难办了,例如放个骡子或者四不象的图片?这个某种程度和下面所说第三点是一样的
    3.逻辑问题,逻辑学里面判断是需要有清晰定义为前提的,定义包含内涵和外延,实物图片无法确定内涵和外延,文字则可以,因为现时的所有定义都是文字表述;例如:展示图片是猫,选择肢是狗、猫、金鱼、玫瑰、小老虎、音乐盒,如果题目没有清晰的定义“同类型”的范围(定义的内涵和外延界定),估计认为正确的答案会是五花八门,所产生的争议事后不容易处理
    4.最最重要的却经常被忽视的双向问题:矛和盾。当想到对方制作矛很困难,其实也应考虑自身用同样的思维套路制作盾更困难,同样的想法,相对厉害的一方只不过是先完成(时间占优)的一方而已。计算机识别困难的情况下,产生题目也相对困难,至少需要避免置信度低的情况,那很可能也需要自己 vs 自己做一次攻防演练

    我也ps:我知道图像识别的困难,从零开始当然是吃亏的(前面所说的时间落后),但你说的某些情况,其实已经有前人的努力,尤其是在学术界和特定的产业。说到底是成本和利益的衡量,我相信当中国水污染达到去污成本高于海水淡化的时候,中国会有很多海水淡化厂的

    做事不能只想着别人吃亏的结果,也要更多预想自己吃亏的可能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5508 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 122ms · UTC 06:50 · PVG 14:50 · LAX 22:50 · JFK 01:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.