只输入第542位bh6ph 这样的短信验证码平台到底怎么输啊?

UPDATE: 有人提到验证问题中文字的识别。所以加入了 tesseract 试了下,Good Case不多,需要改进。这里只是展示可行性。&br&----&br&中午看到这个验证码就囧了。&br&以前和同学讨论过图片验证码的问题,结论就是不靠谱。&br&&ul&&li&图片过于复杂、混淆过多、条件太诡异时会挡住大部分正常用户&br&&/li&&li&容易被枚举,题库太弱,不如字符组合可能性多&/li&&li&破解门槛不一定高于字符型Captcha&/li&&/ul&目测12306图片是低分辨率网络图片。猜想用公共服务就足够破解了,不需要自己搞机器学习什么一类。公共服务例如:&br&&ul&&li&百度识图 &a href=&///?target=http%3A//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度识图——以图搜信息,发现更多可能&i class=&icon-external&&&/i&&/a&&/li&&li&Google图片 &a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&...&/li&&/ul&撸代码,试运行,一次通过,放截图:&br&第一次:&br&&img src=&/33c77854a_b.jpg& data-rawwidth=&293& data-rawheight=&190& class=&content_image& width=&293&&&img src=&/782ac71ddf6538bdaaa7_b.jpg& data-rawwidth=&738& data-rawheight=&378& class=&origin_image zh-lightbox-thumb& width=&738& data-original=&/782ac71ddf6538bdaaa7_r.jpg&&&br&&br&第二次:&br&&img src=&/fcc5cefae78f7e9d386ad_b.jpg& data-rawwidth=&293& data-rawheight=&190& class=&content_image& width=&293&&&img src=&/8e8ec015f9f_b.jpg& data-rawwidth=&728& data-rawheight=&398& class=&origin_image zh-lightbox-thumb& width=&728& data-original=&/8e8ec015f9f_r.jpg&&&br&挂上 tesseract 识别试试(其实用过都知道官方训练数据准确率不高),来个Good Case。&br&&img src=&/7a5e62c02c7b33e6ced100a2f7bf31b6_b.jpg& data-rawwidth=&293& data-rawheight=&190& class=&content_image& width=&293&&&img src=&/a3cb0daed831e6f85c7ca0_b.jpg& data-rawwidth=&806& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&806& data-original=&/a3cb0daed831e6f85c7ca0_r.jpg&&&br&&br&结论:&br&233333 ~&br&&br&代码:&br&&a href=&///?target=https%3A///andelf/fuck12306& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&andelf/fuck12306 · GitHub&i class=&icon-external&&&/i&&/a&
UPDATE: 有人提到验证问题中文字的识别。所以加入了 tesseract 试了下,Good Case不多,需要改进。这里只是展示可行性。 ---- 中午看到这个验证码就囧了。 以前和同学讨论过图片验证码的问题,结论就是不靠谱。 图片过于复杂、混淆过多、条件太诡异时会挡住…
知乎首答一发!!!!&br&&br&&br&还记得从前,验证码还只是这样:&br&&img src=&/a13abdafeaaebbd_b.png& data-rawwidth=&60& data-rawheight=&21& class=&content_image& width=&60&&&br&&b&作为一名优秀的程序猿的你在想,为什么不做一个自动识别软件,验证码全是数字,你只要收集一个包含10个数字的训练库,把图片二值化然后分隔单个字符最后对比训练库里的数字最终识别,so easy!&/b&&br&作为一个有情怀的天才程序猿,你花了1天搞定了该程序,自豪感爆棚。&br&自己用了几天赶脚非常不错,于是你不仅自己用,还发给亲戚朋友们用。尽管它只是省了3秒钟的输入验证码的时间不过你的亲戚朋友们因为觉得它确实很高大上,纷纷夸你并把它分享给自己的朋友。&br&&br&然而,终于有一天,你的作品被传到了另一个天才程序猿手里,非常不巧的是,&b&他就是运营这个网站并且整出“验证码”这玩意儿的那个程序猿。&/b&他的工作任务就是确保在用户电脑前执行登陆或者注册操作的是一个“人”而不是某个黑科技刷子。&br&看完你的东西他瞬间觉得日了狗了,觉得你的软件是对他工作的侮辱,是在向他的智商发出挑战...&br&&br&于是,这货大手一挥,后来的验证码变成了,这样:&br&&img src=&/2a105b98c92afa83ffd5ba_b.png& data-rawwidth=&89& data-rawheight=&25& class=&content_image& width=&89&&&br&次日你刚起床,发现你的邮箱已经炸了,里面全是大家在向你反馈你的软件不能用了。于是打开网页看到了新版的验证码。&br&你冷哼一声,当然,你是一个天才程序猿,你只简单的向你的训练库里又添加了52个大小写英文字母就解决了这个问题。完了以后你还顺手添加了几个日文平片假名,也没别的目的,就是多装个B。&br&于是你的软件又能用了。&b&你觉得你的智商已经碾压了这个做网站的货。&/b&&br&&br&然而,不可避免的,过了几天你发现,验证码开始丧心病狂了,它已经变成了这样:&br&&img src=&/989e1cad214bf0b2e3b2bbb_b.png& data-rawwidth=&67& data-rawheight=&22& class=&content_image& width=&67&&&br&&b&现在你就觉得有点懵逼了&/b&,汉字那么多,你觉得这个对面那个做验证码的程序猿就是想玩儿死你。不过没关系,换汤不换药。于是你又花了一个礼拜,写了一个字符自动截取的代码,在网上整理出了常用汉字3000个,并且分别截取了这3000个字的黑体、宋体和楷体的图片并放进了训练库里。你的程序又能用了。&br&这次以后你觉得很累但是真的很有成就感,你觉得你就是全天下最diao的程序猿。然后你就去补睡了。&br&&br&然而,你不会意识到的是,在你睡觉的时候,另一个程序猿正在被你逼疯。&br&几天以后,你发现验证码突然变得开始反人类:&br&有,这样的&img src=&/f8bbac59d82ae647e4987a_b.png& data-rawwidth=&64& data-rawheight=&23& class=&content_image& width=&64&&这样的&br&&img src=&/1f9d9c6b491b74efd133_b.png& data-rawwidth=&117& data-rawheight=&29& class=&content_image& width=&117&&这样的&img src=&/fde2917806a_b.png& data-rawwidth=&114& data-rawheight=&30& class=&content_image& width=&114&&这样的&img src=&/f9bf4de67bedfc9a1e4d45_b.png& data-rawwidth=&82& data-rawheight=&30& class=&content_image& width=&82&&还有这样的&img src=&/fe23544eada58ca0b06408bfe9f2f216_b.png& data-rawwidth=&79& data-rawheight=&38& class=&content_image& width=&79&&- -|&br&&br&等到某天你再从睡梦中醒过来的时候会发现,整个世界都已经不一样了,你的邮箱里全是愤怒的朋友、朋友的朋友还有朋友的朋友的朋友。&br&他们不单单只吐槽你的软件不能用了,而且更关键是!!&b&喵了个咪的这TM啥玩意儿啊!直接用眼看都特么看不清这些验证码到底是个毛了啊!!!!&br&&/b&&br&&b&看到这些牛鬼蛇神我猜你整个人都已经斯巴达了!!!&/b&&br&&br&但是怎么办,你是天才程序猿!你不能输啊! &br&于是你系上头巾,泡好咖啡,借了各种书籍撸起袖子准备开干,势要搞定这些验证码。&br&&br&此时,电话响了。&br&&br&是你的老妈。&br&&br&你妈说:儿啊,你妈跟你爸打算出去度个假,想要在网上订个火车票,&b&上了12306的网站&/b&,&b&&u&但是它最近不知道为什么突然换了一种验证码啊。&/u&&/b&你爸妈是真老了,看了看发现是真不会输这个验证码,听二姨说你搞了个什么软件能直接自动给输了,你给我看看呗。&br&&br&你轻松的应承下来,不急不慢的打开12306网站。&br&&br&终于&br&&br&你惶恐的小眼神一眼就看到了如下玩意儿:&br&&img src=&/0d4acb4cbf5c807c0175e_b.jpg& data-rawwidth=&854& data-rawheight=&640& class=&origin_image zh-lightbox-thumb& width=&854& data-original=&/0d4acb4cbf5c807c0175e_r.jpg&&&br&&br&&br&&b&&u&听说大部分程序狗高中的时候都学的理科!!!!!!!!!!&/u&&/b&&br&&br&&br&&b&&u&就问你服不服!&br&&/u&&/b&&br&-----------------------------------------------------------分割一下-----------------------------------------------------&br&&br&&br&&br&&br&槽吐完了再给大家看一看最初的那个清纯简单的验证码&br&&img src=&/a13abdafeaaebbd_b.png& data-rawwidth=&60& data-rawheight=&21& class=&content_image& width=&60&&&br&1秒辨别,2秒输入&br&&br&&br&所以想要表达的是,其实自动识别验证码这种东西,只要你不是黄牛党僵尸号出售员刷票专业户这种职业,花尽了心思去做完了也就只是装装X,并没有什么卵用。何必呢。&br&&br&&b&最后想一想人家对面哪位一直跟你杠正面,不停开脑洞搞出更加变态的验证码的小哥,你熬一个夜意味着他马上得熬一个夜,于是你又熬两个夜,他再熬四个夜...... 0.0 炸!&/b&&br&&b&所以,大家都是程序狗,大学选专业的时候一不小心走了神才踏上这条不归路的,互相放一条生路吧!!!Q.Q&/b&&br&&br&&br&&br&&br&&b&------------------------------------------------------------------再割一下------------------------------------------------&/b&&br&&br&&br&(8.29)感谢大家的点赞~ 知乎首答就这么多赞开心得不得了lol。&br& 有同学问我说我似乎没有真正回答为什么程序猿不做自动识别的这个问题&br&&br&&b&答案就是,又不是没做出来过&/b&&br&&br&好吧我想我们可以来个类比:&br&做验证码的那位程序猿A就像是拿了一个花瓶来让大家认,做自动识别程序的小哥B就像是一直试图教机器认识这是个花瓶一样。&br&&br&起初,A为了反击B,给花瓶上色、用布包起来只留个轮廓或者干脆掰掉一个把手来试图让B的程序识别不了这个花瓶。&br&可是B是个很牛X的程序猿啊而且他调教的程序也相当的蒸汽!每每都能拆掉A出的奇招。&br&但是每次A只要随手给出一点变动,B就要花上一两天来继续优化他的程序!&br&&br&&br&可是各位,你们有没有发现再这样下去无非只有一个结局。&br&&br&就是... ...&br&&b&A说:&妈蛋!算你狠!LZ不跟你玩儿了!大不了咱俩鱼死网破!&&/b&&br&&b&然后顺手直接把花瓶砸了......&/b&&br&&b&&你丫倒是接着拼起来认啊!!&&br&&/b&&br&&br&&br&&br&所以事实就是,现在的很多奇葩验证码已经很难做到自动识别了,而且就算有人做到了,估计识别率暂时也无法保证,而有情怀的程序猿们一般都会把用户体验看得很重,残次品是不会到处去发给大家炫耀的。&br&&br&况且&br&等到有一天程序猿B调教好了程序又能识别了&br&&br&A只要把花瓶渣捡起来砸得更碎一点=、=
管你们自己用眼睛还能不能识别&br&&br&&br&&b&----------------------------------------------------------------------&/b&&br&部分图片来源于网络,侵删。
知乎首答一发!!!! 还记得从前,验证码还只是这样: 作为一名优秀的程序猿的你在想,为什么不做一个自动识别软件,验证码全是数字,你只要收集一个包含10个数字的训练库,把图片二值化然后分隔单个字符最后对比训练库里的数字最终识别,so easy! 作为一…
你可能不知道的是,盲人等残障人士使用电脑、手机等信息产品的难度被大大高估了,他们平时也是可以顺畅的使用电脑、手机,顺畅的上网的。事实上,盲人不仅仅作为用户,就目前所知的,知乎团队里就有盲人同事,而QQ、QQ空间、QQ音乐乃至微信的版本,都有过盲人工程师的参与。&br&&br&我非常认真地写下了这篇回答,是为了聚沙成塔,尽一点点力量,给周围的残障人士一些帮助,消除人们以往因为不了解而造成的误解。&br&&br&关于这个问题,如果用一句话来概括,应该是:现有的计算机技术已经为盲人修了盲道,盲人或者其他视力障碍者是可以正常走的,12306的验证码就像在盲道上突然挖了个坑,而现在的诉求是在坑上搭上木板,而不是重新为盲人修一条路专门修一条路。&br&&br&帮助残障人士能够顺畅的使用电脑和互联网,有一个术语叫 Accessibility(中文有时翻译为可及性)。&br&&br&必要要了解的几点:&br&&br&&b&1. 盲人可以正常使用电脑,如你我一样,只是使用方式不同&/b&&br&&br&&p&很多人之所以不理解,是不知道现在盲人本来就是可以顺畅使用电脑的。Windows 系统、主流浏览器都有 Accessibility 的支持,使得盲人可以借助键盘、语音等使用电脑,如同正常人一样,只是操作方式不同而已。其实不仅仅是电脑,手机也一样,iPhone 和 Android 系统,同样早已支持盲人使用。我在盲人按摩店里,看到盲人师傅在拿电脑记账,使用手机聊微信,都是很正常的。&/p&&br&&p&事实上现在就有很多盲人在使用知乎。以文字为主体的知乎,并没有对盲人用户关上大门,他们可以顺畅的阅读和分享知识,在网上看他们的回答,你不会感觉到他们和其他人的差别。据说知乎还有盲人员工。&/p&&br&&p&互联网的技术早就有为盲人铺路,很多网站盲人都可以使用的,只是普通人或者非技术领域的人不了解,千万不要认为盲人就用不了网络,用不了电脑。&br&&/p&&br&&p&&b&2. 并不需要重新做一个盲人用的12306,只需要改进验证码&/b&&/p&&br&&p&正因为基础的科技和工程进展已经做了大量工作,只要12306的网站符合通常的规范,盲人使用12306本身是没有问题的,现在的问题是卡在了验证码上面。&/p&&br&&p&验证码带有能够帮助视力障碍者访问的功能(如语音辅助),并不是多么新鲜的技术,在业内一直都有使用。上国外的网站,在需要验证码的地方,旁边常常有一个朗读的选项,是一个轮椅的图标(不要担心残障人士点不了图标,事实上所有功能都应该能通过键盘访问到,也是 Accessibility 的要求)。在国外的大多数网站中,验证码带有 Accessibility 是标配。&br&&/p&&br&&p&&b&3. Accessibility 的法律和规范问题&/b&&/p&&br&&p&美国政府曾推出劳工康复法案的508条款,要求当联邦机构开发,采购,维护,或者使用电子和信息技术,从而使得残疾的联邦雇员能和非残疾的联邦雇员一样都能够访问并且使用其信息和数据,除非它会给机构带来过度的负担。508条也要求来自公众寻求信息或者服务的联邦机构的残疾人,能够访问和使用信息和数据,如同提供给公众的那些非残疾人一样,除非它会给机构带来过度的负担。&/p&&br&&br&这直接推动了 Accessibility 的发展,很多大公司在产品当中都会考虑 Accessibility 的规范。例如,普通人可能注意不到,很多软件里,在对话框中会专门针对盲人阅读器做一些适配。即使像 Google, Facebook 等拥有巨大体量用户的产品,在注册流程需要输入验证码时,同样必须要满足 Accessibility 的要求。&br&&br&&p&尽管这项法律在实践中有时会有矫枉过正的问题,但是在计算机和互联网领域,客观上还是帮助了全球范围内的很多残障人士,今天我们周围的很多残障人士能够使用顺畅的使用 Windows,使用浏览器上网,使用手机(iOS 和 Android 系统),正是因为微软、浏览器厂商们、Google 等满足 Accessibility 的要求。&/p&&br&&p&我国在标准和规范方面仍然有很多地方要补课,但是长期来看,将对残障人士的关怀纳入到工业界当中是大势所趋。&/p&&br&&p&事实上中国目前的很多产品同样也符合 Accessibility 的规范,能够被残障人士正常使用。然而,12306 在验证码模块并没有做到。&/p&&br&&p&&b&4. 很多人在为残障人士顺畅使用信息产品而努力&br&&/b&&br&浅川智惠子(Chieko Asakawa),是 IBM 杰出工程师(DE),熟悉 IBM 内部体制的人就会知道,这个职位非常高,需要有极大的成就才能取得。她14岁失明,1985年加入IBM东京研究实验室,1997年开发了第一个可用声音读出网页内容的浏览器。为什么她以及 IBM 能够在这个领域取得很多进展?这样的产品未必有很强的赢利能力,但是因为有政府的支持和法律的要求,在这些领域有突破的企业,商业上会更有竞争力。这也在为我们的社会 Do Good.&br&&br&有一位认识的老师,在做包容性设计,就是在设计当中能够尽可能的包容普通人和生理有障碍的人士。我觉得这是特别正向的事。&br&&/p&&br&&p&&b&5. 关于反对的声音&/b&&/p&&br&有代表铁总的人出来说,你们愿意为了支持残障人士的使用,导致成本上涨,支付更高的票价么?这是一种小聪明的逻辑,企图让普通人和残障人士对立起来,当然本质上还是对于技术的了解不够,只是片面站在自己立场上看问题。&br&&br&如前面所说:&br&&br&一方面对 Accessibility 的支持并不会导致成本大幅度上升。很多人以为是要给视觉障碍者单独做一套系统,而实际上现有的系统本身就支持(这是浏览器和互联网技术业已形成的一系列规范带来的好处,这个世界还是有很多人在 Do Good),现在只是希望在图片验证码之外支持 Accessibility。如果这样都可以以此为理由涨价,用一句流行语来说,怎么不上天。&br&&br&另一方面,中国本来就有很多支持保障人士的经费,例如企业要缴纳残疾人就业保障金等等,在政府和接受政府经费、政府作为股东的企业,也应该有相应的体现。现实当中一些国内的互联网公司已经做到了对残障人士的支持(符合 Accessibility 的标准),而作为国有背景的12306却不支持,这非常遗憾。&br&&br&&b&6. 但行好事&br&&/b&&br&我们的社会现在还有太多不完善的地方,有太多可以改进的空间,能让很多人的生活变的更好。特别希望大家都能更开放一些。就像街上的盲道,现在不少地方修的像笑话,盲道上面处处是陷阱,让人失笑的同时不禁为真走在上面的盲人担心,而钱也没少花。既然同样是要做这些事,我们完全可以做的更好一些。&br&&br&视力障碍者使用12306购票,技术上并没有特别大问题(具体可能还得做验证码这块的朋友来细看)。可能很多人都不了解,大多数浏览器本身都是满足 Accessibility 要求的。如果真有困难,也是在技术的层面来讨论。我觉得不舒服的,是网络上很多人是在冰冷的另一个纬度上说话,否定残障人士的权利,而不是从技术上说话。&br&&br&科技的发展,最终应该造福社会。因为全世界科技工作者的努力,让残障人士(例如盲人)使用电脑和网络,这样在很多人眼里觉得不可思议的事,早已成为现实。 这样的好事,应该让它继续生根发芽。&br&&br&Do Good.&br&&br&&b&7.写在后面&br&&/b&&br&现在知乎里动不动就拿政治正确说事(之所以提到这个是因为这个问题下面,已经有些回答再谈左右、谈政治正确了),好像要极端点、露骨点才显得现实。然而我们现在的政治正确真的够么?担心对残障人士的合理照顾会影响到普通人的利益?就好像对面黄肌瘦的人们讲,胖的时候可是会得糖尿病的,所以你们要少吃点。&br&&br&我觉得有时候我们可以多给一些善意,坚持一点点政治正确。&br&&br&----&br&在知乎里写了几年东西,基本上都是平时的碎片时间、睡觉前、拒绝朋友叫我出去打德州的时候。觉得这是很好的积累,既能够帮助别人,也能够让自己有总结的机会。&br&&br&这几天被列入了知乎年度荣誉会员候选名单,我觉得很有纪念意义,算是一种情怀吧。如果有帮到你,请投票支持我,感谢。&br&&br&&img data-rawwidth=&1125& data-rawheight=&252& src=&/v2-549fbd386c134fcecdae_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1125& data-original=&/v2-549fbd386c134fcecdae_r.jpg&&&br&&p&感谢大家帮我投票,投票入口:&/p&&p&&a href=&/votes?domain=internet& class=&internal&&&span class=&invisible&&https://&/span&&span class=&visible&&/votes?&/span&&span class=&invisible&&domain=internet&/span&&span class=&ellipsis&&&/span&&/a&&/p&&br&&p&----&/p&&p&在知乎里回答的问题集合:&/p&&p&&a href=&/p/& class=&internal&&索引 - 知乎专栏&/a&&/p&&br&--&br&关于产品设计&用户体验相关的文章:&br&&br&&p&文章目录:&a href=&/p/& class=&internal&&连载中:产品设计的思考方式(目录) - 产品设计与用户体验 - 知乎专栏&/a&&/p&&p&关注专栏:&a href=&/design& class=&internal&&产品设计与用户体验 - 知乎专栏&/a&&/p&&br&&p&关于时尚&设计相关文章:&/p&&p&&a href=&/designer& class=&internal&&不从众的好设计 - 知乎专栏&/a&&/p&
你可能不知道的是,盲人等残障人士使用电脑、手机等信息产品的难度被大大高估了,他们平时也是可以顺畅的使用电脑、手机,顺畅的上网的。事实上,盲人不仅仅作为用户,就目前所知的,知乎团队里就有盲人同事,而QQ、QQ空间、QQ音乐乃至微信的版本,都有过盲…
可我看到的全是商机啊。&br&对于这种 用户必须用,用户没有替代品的网站来说。把验证码变成广告位简直是丧心病狂屌炸天的商机。&br&&br&这些图片完全可以招标使用各种广告,比如说:&br&请选择 健康营养又美味的【银鹭花生牛奶】&br&&br&请选择 过年必备旺旺产品系列中的【旺旺雪饼】【旺旺大礼包】【旺旺仙贝】&br&&br&请选择 今年过节不收礼,收礼只收【脑白金】的爷爷和奶奶广告图&br&&br&&br&&br&……&br&&br&以这种网站的流量来看,分分钟广告过亿的节奏,广告商估计花多少钱都愿意投吧。
可我看到的全是商机啊。 对于这种 用户必须用,用户没有替代品的网站来说。把验证码变成广告位简直是丧心病狂屌炸天的商机。 这些图片完全可以招标使用各种广告,比如说: 请选择 健康营养又美味的【银鹭花生牛奶】 请选择 过年必备旺旺产品系列中的【旺旺…
题主问得太好了。&br&&br&答案:侵权。&br&&br&中国铁路总公司是营利性的国企,网站是商业用图的,图片算用作商业途径。受法律保护,图片著作权所有者有权利起诉。&br&&br&中国企业在这一块的法律常识太缺乏,没有人找你麻烦很少人会遵守这方面的法律。连央视这样的官媒也多次被爆侵权。&br&&br&很多人调侃12306的验证码可笑,却没看到更深层的东西。保护知识产权,还得靠大家的共同努力。在这个层面上,值得欣慰的是,很多知乎网友还是站在时代前端的。&br&&br&附:&br&&b&&a href=&///?target=http%3A///flfg//content_1544458.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&中华人民共和国著作权法&i class=&icon-external&&&/i&&/a&&/b&
题主问得太好了。 答案:侵权。 中国铁路总公司是营利性的国企,网站是商业用图的,图片算用作商业途径。受法律保护,图片著作权所有者有权利起诉。 中国企业在这一块的法律常识太缺乏,没有人找你麻烦很少人会遵守这方面的法律。连央视这样的官媒也多次被…
四个月前刚好为了穷举密码写过一个验证码识别模块,先挖个坑,随便写一些,我也会尽量写得浅显易懂一些,过几天有时间再慢慢填。&br&题主一共提了4个问题,我的答案都是根据这4个问题回答的,想了解更多可以看其他答案。&br&&img src=&/ac4a2dded7d04e62309a3a_b.jpg& data-rawwidth=&614& data-rawheight=&107& class=&origin_image zh-lightbox-thumb& width=&614& data-original=&/ac4a2dded7d04e62309a3a_r.jpg&&&br&&blockquote&&ul&&li&&b&&u&机器自动识别验证码的原理是怎么样的?&/u&&/b&&br&&/li&&/ul&&/blockquote&我自己写验证码识别模块的时候是这样的,当然不一定大家都这样写,肯定有更好的算法,我要识别的那个验证码是比较简单地那种,所以这样写就够了。&br&&br&我用Windows的画图工具画了这个张图,用来举个例子:&br&&img src=&/70b8dff124a7fa71a552e_b.jpg& data-rawwidth=&360& data-rawheight=&160& class=&content_image& width=&360&&这是一张分辨率为19*7的图片&br&&br&&ul&&li&1、&b&&u&遍历所有像素点&/u&&/b&(像PHP就是先getimagesize,获取i和j,然后用imagecolorat进行两重循环,就可以得到所有像素点的RGB值数据),&b&&i&&u&然后二值化&/u&&/i&&/b&【比如判断RGB值小于#FFFFFF的(即非白色)时候标记为1,大于等于#FFFFFF(即白色)的标记为0,存进二维数组】,&b&&u&最后得到一个19*7的二维数组;&/u&&/b&&br&&/li&&li&2、&b&&u&删除干扰的点、线&/u&&/b&(干扰像素的特点是不连续,占用的像素点少,可以很容易地设计算法容易过滤,如果干扰像素采用了和验证码正文明显不同的颜色,则可以在第一步二值化中直接去掉。这个例子里没有干扰点、干扰线)&/li&&li&3、&b&&u&把数组里连续的字符切割成一个个独立的字符&/u&&/b&(像下面这个,最右边一列都是0,就可以判断是图像边缘,然后切开,最后可以得到三个类似这样的6*6二维数组。实际切开的话,最右边一列是没有整列都是0的情况的,这里是我特地加上的。)&b&&u&如果字符有旋转的,还得根据边缘把它再给摆直&/u&&/b&&br&&/li&&/ul&&blockquote&0 &b&&i&&u&1 1 &/u&&/i&&/b&&u&&i&&b&1 1 &/b&&/i&&/u&0 0&br&&b&&i&&u&1 1 &/u&&/i&&/b&0 0 &b&&i&&u&1 1 &/u&&/i&&/b&0&br&0 0 0 0 &b&&i&&u&1 1 &/u&&/i&&/b&0&br&0 0 0 &b&&i&&u&1 1 1 &/u&&/i&&/b&0&br&0 0 0 &b&&i&&u&1 1 &/u&&/i&&/b&0 0&br&0 0 &i&&u&&b&1 1 &/b&&/u&&/i&0 0 0&br&0 &b&&i&&u&1 1 &/u&&/i&&/b&0 0 0 0&br&&b&&i&&u&1 1 1 1 1 1 &/u&&/i&&/b&0&/blockquote&&br&&ul&&li&4、然后直接循环&b&&i&匹配已有的&/i&&/b&所有的同字体的&b&&i&&u&数据&/u&&/i&&/b&(同样是二值化数据,这些数据是哪里来的呢?一般是先作完前面3步,然后把那些二值化数据一个个全部复制下来,多刷新十几次获取样本,运气好的话[A-Z],[0-9]就都有了),达到一定的&b&&i&&u&相似度(不要求完全匹配)&/u&&/i&&/b&,就认定这个验证码的其中这个字符是2。除了这种比较外,还有根据概率、机器学习等等大量方法来做这最后一步。现在验证码的设计难点主要是放在防止字符被切割上。&/li&&/ul&&img src=&/c4e154b9b_b.jpg& data-rawwidth=&1365& data-rawheight=&281& class=&origin_image zh-lightbox-thumb& width=&1365& data-original=&/c4e154b9b_r.jpg&&&br&就像这样的数据,开了自动换行,应该比较好认了,摘掉眼镜快速滑动页面也可以比较清楚地看清这些数据的内容。&br&&img src=&/f61fdcad7de19b8d4b8af1c8fd6d7e55_b.jpg& data-rawwidth=&508& data-rawheight=&728& class=&origin_image zh-lightbox-thumb& width=&508& data-original=&/f61fdcad7de19b8d4b8af1c8fd6d7e55_r.jpg&&&br&另外还有一种&b&&u&人肉分布式验证码识别”技术“&/u&&/b&,专门开发一个客户端软件给没事干的大学生打码赚些小钱。服务端获取到验证码后分发给在线的客户端,客户端人肉识别,返回结果。如果在线人数足够多,任务下达后几乎都是秒回的,效率也是不错的,进程等待验证码从人肉识别机上返回的时间就挂起,不怎么占用CPU时间。现在业界人肉打码机大概是这个价。&br&&img src=&/3_b.jpg& data-rawwidth=&695& data-rawheight=&597& class=&origin_image zh-lightbox-thumb& width=&695& data-original=&/3_r.jpg&&&br&&blockquote&&ul&&li&&b&&u&识别不同验证码也分难度等级吗?&/u&&/b&&br&&/li&&/ul&&/blockquote&&b&&i&&u&根据上面的识别原理&/u&&/i&&/b&,可以确定识别难度肯定分等级。从步骤1和2看,噪点多、干扰线条多、背景颜色紊乱的肯定难识别,因为会在二值化那里遇到困难,最容易识别的肯定是噪点少、干扰线条少、背景颜色统一的验证码。&br&不过验证码要达到人可以识别的程度,肯定主体部分(验证码)的RGB值还是有一定的规律的,也就是可以通过一定的判断来二值化。像主体部分,一般颜色要比背景深,根据不同的情况设计算法是可以区分背景和正体的。&br&&blockquote&&ul&&li&&b&&u&什么样的验证码识别起来简单?&/u&&/b&&br&&/li&&/ul&&/blockquote&&img src=&/15ef463bb09f8adb055f01b_b.jpg& data-rawwidth=&348& data-rawheight=&96& class=&content_image& width=&348&&&br&&blockquote&这个是弱验证码的典型,2006年那时候我刚开始做网站开发时,当时最热门的那几个论坛程序就在用这种验证码,现在那几个论坛停更了好多,所以还有不少网站现在还在用这种验证码。&br&★★☆☆☆☆☆☆☆☆&/blockquote&&br&&img src=&/bef5cddb95ed2c0c26bf4_b.jpg& data-rawwidth=&292& data-rawheight=&102& class=&content_image& width=&292&&&blockquote&这个也是弱验证码的典型,比上面那个好不了多少,虽然背景加入了大量干扰点,但是颜色偏淡,可以在二值化中直接设置一个阈值直接干掉,正确的做法应该是加入和验证码本体颜色一致的干扰线和干扰点,理论上说数量越多越好。&br&★★★☆☆☆☆☆☆☆&/blockquote&&img src=&/67a1d8e8ab0eccbb3911_b.jpg& data-rawwidth=&290& data-rawheight=&135& class=&content_image& width=&290&&&blockquote&这个又比上面那个好一些了,干扰点和验证码正文颜色都非常随意,遗憾的都是非常分散的点,很容易被识别出来并过滤掉。如果换成若干条和正文颜色相同、并且与正文交叉的细线会好一些。&br&★★★★☆☆☆☆☆☆&/blockquote&&br&&b&&blockquote&&ul&&li&&b&&u&什么样的验证码识别起来难?&/u&&/b&&br&&/li&&/ul&&/blockquote&&/b&&img src=&/d424cebe4_b.jpg& data-rawwidth=&298& data-rawheight=&185& class=&content_image& width=&298&&&blockquote&难以识别的验证码1:大量背景、线、点干扰,而且字体有一定程度的旋转,&b&&i&&u&连人眼都难以识别&/u&&/i&&/b&的验证码(影响第1、2步的识别),线的干扰在这里起作用比较明显。★★★★★★☆☆☆☆&/blockquote&&br&最难以识别是每个字符都粘连在一起的,这些会在第3步(切割字符)和第4步匹配已有数据(每次的字体扭曲程度都是不同的,难以匹配)时遇到困难。&br&&img src=&/5ba0d6db2_b.jpg& data-rawwidth=&277& data-rawheight=&325& class=&content_image& width=&277&&&blockquote&难以识别的验证码2:没有干扰点、背景也很干净、也没有干扰线,就靠&b&&i&&u&不规则每次都不同的字体&/u&&/i&&/b&和&b&字符粘连&/b&,就可以让写验证码识别的人头疼好久。(影响第3、4步的识别)&br&★★★★★★★★☆☆&/blockquote&&br&&br&另外英文还是比较Naive的,中文识别难度不知道要比英文高到哪里去,以百度贴吧为例:&br&&img src=&/eeb8faa992d9c2adbc5d1_b.jpg& data-rawwidth=&368& data-rawheight=&386& class=&content_image& width=&368&&&br&&blockquote&难以识别的验证码3:&br&1、干扰线&br&2、加粗不加粗混用&br&3、采用了中文常用字。中文常用字大概有5000个,笔画繁复,形似字多,比起26个字母不知道高到那里去!&br&4、不同的字体混用,比如楷体、宋体、幼圆混用&br&5、形近字:”缴“和”激“、”寿“和”寺“等等&br&6、拼音,又是一大杀器&br&7、扭曲字体(”营“字有比较明显的扭曲)&br&8、需要准确识别13位汉字,增加了失败概率&br&(全面影响所有识别步骤)&br&汉字粘连后识别度不如英语高,所以一般汉字验证码都不粘连。&br&★★★★★★★★★☆&/blockquote&&img src=&/aeb2dbcf76b_b.jpg& data-rawwidth=&580& data-rawheight=&547& class=&origin_image zh-lightbox-thumb& width=&580& data-original=&/aeb2dbcf76b_r.jpg&&&img src=&/7bb2cda17b45a_b.jpg& data-rawwidth=&313& data-rawheight=&85& class=&content_image& width=&313&&&img src=&/fde0d147dfa60fd932c26a58_b.jpg& data-rawwidth=&333& data-rawheight=&87& class=&content_image& width=&333&&&img src=&/2cfdafddfede9a5d4f89_b.jpg& data-rawwidth=&298& data-rawheight=&78& class=&content_image& width=&298&&&blockquote&如果把旋转和粘连程度调得非常高的话,机器识别错误率就会很高了(甚至连人的识别错误率都会很高)。好在现代网页大都配备了Ajax验证码检测的判断,因此可以通过网站预留的接口多次尝试判断来获取验证码,1次失败,就试上20次,总有1次能成功的。&br&★★★★★★★★★★&/blockquote&&img src=&/159ad8f84a5c3bf7040dac_b.jpg& data-rawwidth=&490& data-rawheight=&120& class=&origin_image zh-lightbox-thumb& width=&490& data-original=&/159ad8f84a5c3bf7040dac_r.jpg&&因此像这种网站应该做的改变就是通过该Ajax判断接口查询验证码是否正确,如果错误,则清除session中的验证码数据,重新获取验证码。(验证码在登陆页是必须存在的,防止暴力破解弱口令,如果是生日类的8位数字密码,要暴力破解出来实在是太容易了)
四个月前刚好为了穷举密码写过一个验证码识别模块,先挖个坑,随便写一些,我也会尽量写得浅显易懂一些,过几天有时间再慢慢填。 题主一共提了4个问题,我的答案都是根据这4个问题回答的,想了解更多可以看其他答案。 机器自动识别验证码的原理是怎么样的?…
&img data-rawheight=&318& data-rawwidth=&488& src=&/f3bb779b9719aee8d2ba_b.jpg& class=&origin_image zh-lightbox-thumb& width=&488& data-original=&/f3bb779b9719aee8d2ba_r.jpg&&人家还专门解释了一下,为啥要这么出。&br&&img data-rawheight=&357& data-rawwidth=&486& src=&/0c2a7ce7dc1fdbfbb54e85e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&486& data-original=&/0c2a7ce7dc1fdbfbb54e85e_r.jpg&&屏幕不够大恐怕真心看不出来。&br&&img data-rawheight=&319& data-rawwidth=&504& src=&/5817fce7ed_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/5817fce7ed_r.jpg&&像这种要动脑的……还注明了“No premium user”.&br&&img data-rawheight=&264& data-rawwidth=&504& src=&/ad0b69ce202b1_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/ad0b69ce202b1_r.jpg&&&br&不注意点儿瞬间被坑,还有狗……&br&&img data-rawheight=&191& data-rawwidth=&504& src=&/7fe2ad464a7d_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/7fe2ad464a7d_r.jpg&&可能懂的人看起来没这么乱= =bbb&br&&img data-rawheight=&159& data-rawwidth=&504& src=&/77df1fecc5005_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/77df1fecc5005_r.jpg&&“what's this?”戳笑点~&br&&img data-rawheight=&331& data-rawwidth=&504& src=&/e7afc6d7e9e61ece9408b3_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/e7afc6d7e9e61ece9408b3_r.jpg&&像这个就是坑爹了!&br&&img data-rawheight=&273& data-rawwidth=&472& src=&/7a940bfeb06_b.jpg& class=&origin_image zh-lightbox-thumb& width=&472& data-original=&/7a940bfeb06_r.jpg&&我估计机器很难识别出这样的吧……&br&&img data-rawheight=&230& data-rawwidth=&430& src=&/c3d0dbd74e9bbd44b2f4bf_b.jpg& class=&origin_image zh-lightbox-thumb& width=&430& data-original=&/c3d0dbd74e9bbd44b2f4bf_r.jpg&&这个是π么?&br&&img data-rawheight=&422& data-rawwidth=&504& src=&/cb12ee9ccfd6de8486c06_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/cb12ee9ccfd6de8486c06_r.jpg&&像这个还是能看出来,不过可能得试个几次……&br&&img data-rawheight=&330& data-rawwidth=&463& src=&/72cb7cdf971e462e797021c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&463& data-original=&/72cb7cdf971e462e797021c_r.jpg&&其实不算很难,也是专业论坛为了限制用户级别的。&br&&img data-rawheight=&321& data-rawwidth=&504& src=&/dfdf30bcf7e1e8ed7586c00fda9245f7_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/dfdf30bcf7e1e8ed7586c00fda9245f7_r.jpg&&无比&b&有爱。回答此题就靠它了。&/b&&br&&img data-rawheight=&280& data-rawwidth=&504& src=&/aeeab64151a1_b.jpg& class=&origin_image zh-lightbox-thumb& width=&504& data-original=&/aeeab64151a1_r.jpg&&瞎了……&br&&img data-rawheight=&204& data-rawwidth=&462& src=&/ff531ece21d0b56cd97a_b.jpg& class=&origin_image zh-lightbox-thumb& width=&462& data-original=&/ff531ece21d0b56cd97a_r.jpg&&像这种,懒得注册的人,会懒得去搜。&br&&img data-rawheight=&61& data-rawwidth=&279& src=&/5efd8e45fa6c39e3f1b2aa5bdc47228b_b.jpg& class=&content_image& width=&279&&人人网的验证码欢乐多……不仅这个,还有下面:&br&&img data-rawheight=&106& data-rawwidth=&314& src=&/c5be6a9c19aaa9c407ff_b.jpg& class=&content_image& width=&314&&以及下面(虽然是巧合):&br&&img data-rawheight=&391& data-rawwidth=&629& src=&/8611bebaea47_b.jpg& class=&origin_image zh-lightbox-thumb& width=&629& data-original=&/8611bebaea47_r.jpg&&&img data-rawheight=&429& data-rawwidth=&426& src=&/18fd3a18b7e6c7a535d75_b.jpg& class=&origin_image zh-lightbox-thumb& width=&426& data-original=&/18fd3a18b7e6c7a535d75_r.jpg&&&img data-rawheight=&422& data-rawwidth=&431& src=&/a2dbe96d8fdda_b.jpg& class=&origin_image zh-lightbox-thumb& width=&431& data-original=&/a2dbe96d8fdda_r.jpg&&&img data-rawheight=&443& data-rawwidth=&427& src=&/7197a1fbbcae210cca8c9dfe9f16217f_b.jpg& class=&origin_image zh-lightbox-thumb& width=&427& data-original=&/7197a1fbbcae210cca8c9dfe9f16217f_r.jpg&&&img data-rawheight=&421& data-rawwidth=&404& src=&/2a16dad1e4225_b.jpg& class=&content_image& width=&404&&&img data-rawheight=&436& data-rawwidth=&426& src=&/9af61c152bf4fdbf4baef5dd27361bf9_b.jpg& class=&origin_image zh-lightbox-thumb& width=&426& data-original=&/9af61c152bf4fdbf4baef5dd27361bf9_r.jpg&&最后拿这两个作结尾:&br&&img data-rawheight=&105& data-rawwidth=&175& src=&/22b3be941e_b.jpg& class=&content_image& width=&175&&结尾!&br&&img data-rawheight=&281& data-rawwidth=&345& src=&/58912ecf74252debfc3c19_b.jpg& class=&content_image& width=&345&&
人家还专门解释了一下,为啥要这么出。 屏幕不够大恐怕真心看不出来。 像这种要动脑的……还注明了“No premium user”. 不注意点儿瞬间被坑,还有狗…… 可能懂的人看起来没这么乱= =bbb “what's this?”戳笑点~ 像这个就是坑爹了! 我估计机器很难识别出…
&img data-rawheight=&240& data-rawwidth=&461& src=&/ebc86c99fcc2a_b.png& class=&origin_image zh-lightbox-thumb& width=&461& data-original=&/ebc86c99fcc2a_r.png&&&br&&img data-rawheight=&169& data-rawwidth=&471& src=&/1eea6ea9c2a1_b.jpg& class=&origin_image zh-lightbox-thumb& width=&471& data-original=&/1eea6ea9c2a1_r.jpg&&&br&这样的验证码
这样的验证码
支付宝推出的扫码支付,在全家、711等便利店已经广泛推广使用,最近微信也不不跟随上线了....&br&先不管现在到底使用率几何,因为这肯定需要一个培育的过程。&br&先从一个顾客的身份来回答此问题:&br&&br&现在你去买东西:&br&要么给现金:总会遇到翻包找零钱的时候吧?&br&要么刷卡:取出银行卡(或预付费卡)给店员→ 输入密码(部分无密码党省去此步骤)→等待打印机打印小票→拿笔签名,你不觉得这个流程非常复杂吗???&br&要是遇到前面排了几个人,个个都刷卡!再遇上输入密码错......のの.......&br&这时,你只能淡定地望着柜台前杜蕾斯&冈本,假装看口香糖.....&br&&br&&b&再举2个真实的场景:&/b&&br&1.当你发现晚上下班后饥肠辘辘地乘着地铁回家,却发现钱包未带,没有现金,没有银行卡,你连去便利店买个便当都没机会,这时候你拿起手机用扫码支付付款,泪奔的心都有了!&br&2.当你发现你买的商品是¥11.4,尼玛又暗暗不爽口袋又多几个硬币零钱了,这时候,如果用扫码支付,再也没有叮咚作响的硬币~&br&&br&&b&再说一下店员&/b&&br&扫码支付刚推出那段时间,几乎看到不同品牌的便利店都习惯性看一下是否支持支付宝扫码支付,如支持,就会象征性地拿瓶饮料主动告诉前台,用扫码支付,这时候也会借此和前台店员聊聊,得到的回答几乎高度一致:&br&从20几岁的小姑娘到四五十岁的阿姨,都是异常的肯定扫码支付的便捷性!!&br&甚至毫不夸张的说,所遇到的每个店员&b&脸上真的都洋溢着幸福的微笑!!&/b&&br&&b&不用再去找零了,更不用担心收到假币了,而且效率其高!基本上几秒的事情~&/b&&br&&br&而彼时的我,真的满满地感动。&br&这种感动是作为一个互联网从业者难得的满足,虽然扫码支付不是我做的,但是能看着自己所从事的这个互联网行业,同行们所创造的一个又一个产品,在逐渐地影响着平民大众生活,能够被平民大众所认可、所喜爱!除了感动,我相信也是一种激励,希望自己也能创造几款被平民大众所认可的互联网产品。&br&&br&说到这,答案不得而知~&br&虽然路途坎坷,但被认可、被喜爱,比现在去定义它很有前景更有说服力。&br&&br&共勉~
支付宝推出的扫码支付,在全家、711等便利店已经广泛推广使用,最近微信也不不跟随上线了.... 先不管现在到底使用率几何,因为这肯定需要一个培育的过程。 先从一个顾客的身份来回答此问题: 现在你去买东西: 要么给现金:总会遇到翻包找零钱的时候吧? 要…
验证码的意义是&b&增加&/b&&b&不知道你的密码的人用计算机暴力破解你的密码的难度&/b&,它的确防不住你题目说明中提及的第二种情况,也就是盗号者已经知道了你的密码。&br&&br&所谓暴力破解,就是在只知道你的用户名的前提下,一个一个去试可能的密码。因为这一过程非常机械,所以一般人都会选择&b&写一个程序来做&/b&,虽然缓慢的网速或网站会拖慢它的速度,但哪怕它只能每秒试一次,每天也能试上八万多次,那些用生日当密码的人撑不过两个礼拜。如果有选择性地生成这些可能的密码(比如只选择能拼成单词或汉语拼音的字母组合),能攻击的人群就更广了。&br&&br&而验证码就是针对这一攻击方法里面「写一个程序」这一环节来对抗它的。验证码的学名叫做「全自动区分计算机和人类的公开图灵测试」,&i&Completely Automated Public Turing test to tell Computers and Humans Apart&/i&,简称 CAPTCHA(原创研究:这个罗嗦的名字大概只是为了凑出 CAPTCHA — &i&capture you&/i& 这个谐音而硬凑出来的,因为「图灵测试」的意图本来就是「区分计算机和人类」)。它的作用就是验证输入密码的人其实是个能从那张图里面读出数字的人,而不是一个无法理解图像的脚本程序。验证码通常以扭曲的文字方式出现,是因为让计算机去识别这些文字非常困难。&br&&br&不过鉴于目前的图像识别技术已经足以匹敌绝大多数扭曲字符的验证码,所以其他形式的 CAPTCHA 也陆续出现,比如问用户一个常识性的问题,要用户把几张颠倒的图片全都调正,或者从一些猫的图片里找出哪一张是狗——总之是一些计算机很难做到的事情。这样一来暴力破解的方法基本上就废了,除非去找血汗工厂人肉破解 CAPTCHA(Google「captcha job」可以看到这样的网站)。&br&&br&除了 CAPTCHA 之外,网站还可以利用其他方式来增加暴力破解的难度,比如输入错误的密码需要多等几秒钟,或短时间内连续输入若干次错误的密码就会导致帐号被锁等等。&br&&br&而如果要防范你题目说明中的第二种情况,普遍的方法是「两步认证」,也就是除了密码之外,你还需要另外别的什么来证明你是输入密码的人。常见的方法包括:给你在网站上注册的手机发一个随机数,让你输入此数字;让你输入某个随身设备按照只有它和你欲登录的网站才知道的特定规则在某个特定时间生成出来的数字(如 &a href=&///?target=http%3A//Battle.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&Battle.net&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& authenticator);或在你使用的电脑上插入一个特定的硬件设备(如 YubiKey)。
验证码的意义是增加不知道你的密码的人用计算机暴力破解你的密码的难度,它的确防不住你题目说明中提及的第二种情况,也就是盗号者已经知道了你的密码。 所谓暴力破解,就是在只知道你的用户名的前提下,一个一个去试可能的密码。因为这一过程非常机械,所…
谢邀。&br&&br&&img src=&/v2-7ca92d583eeeaba2d96b_b.png& data-rawwidth=&720& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-7ca92d583eeeaba2d96b_r.png&&
更新&br&推荐&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Programming Computer Vision with Python&i class=&icon-external&&&/i&&/a&, 这位作者用python重写很多基本的Computer Vision算法,书的final draft在首页,代码也在Github上边。类似于验证码识别的问题呢,大家可以直接refer Chapter 8 - Classifying Image Content, 里边不仅有对3种classification approaches的详细解释,而且还有比如手势识别,OCR识别等经典问题,更更重要的是,Github上直接有那些data set,意味着你可以自己做着玩,非常好的书,编码方面对我帮助很好。&br&&br&&b&哪些验证码不好识别?&/b&&br&个人以为大概2个方面&br&&ul&&li&&b&图像的预处理&/b&&/li&&/ul&我们看下面大概知道通常第一步就是需要分割图像成几个小的图像,然后每个笑的图像尽可能的各自独立,这一步应该是比较麻烦的一步啦。&br&&img src=&/ac1ecc220f9acfbf2979480cba8a4e06_b.jpg& data-rawwidth=&435& data-rawheight=&259& class=&origin_image zh-lightbox-thumb& width=&435& data-original=&/ac1ecc220f9acfbf2979480cba8a4e06_r.jpg&&&br&比如上图所示铁道部静态的验证码,这就是非常容易分割的啦。&br&&br&&img src=&/ba1bba3adbae687f66bd9f92_b.jpg& data-rawwidth=&1130& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&1130& data-original=&/ba1bba3adbae687f66bd9f92_r.jpg&&再比如google的这个验证码,我们发现左边的个单词可能就算是人类也需要花些时间来识别,可是右边的这个continued我们一眼就可以看出来。据说,右边的这个词是google扫描书籍后的图像,然后因为很多图像计算机也不好识别,所以就通过这个方式来使用人力进行识别,通常只要右边的词写对啦,就算是正确的好像,而左边的经过扫描之后的词呢就会根据大部分人写出的答案来对其识别,so smart.&br&&br&&ul&&li&&b&训练样本&/b&&/li&&/ul&大家看到每个网站可能用的验证码都不太一样哈,所以为了提高准确率,训练样本(training samples)对了classifier的功效起着致命的作用。比如12306的验证码,我们可能就需要花一定的时间去label samples;然后对于腾讯一系列的验证码,可能又需要花些时间去label samples。而且通常来讲,样本越大,准确率会提高。这样带来的结果就是成本高!!&br&&br&最后,那有没有办法用12306的训练样本来识别腾讯的验证码呢?毕竟他们都是验证码嘛。这样一来就可以节省时间啊,那就是成本的减少啊。学术界很早就想到了这样子的一个方向,叫做 Transfer Learning (or Domain Adaptations)。蛮有趣哒!&br&--------------------------------------------------------------------------------------------------------------------&br&&br&基本是Machine Learning中经典问题啦 - recognition,然后recognition又被应用在很多很多的方面,比如最基本的text classification, image classification,甚至是video classification。对于验证码的处理,基本是以下几步啦,其他问题的framework也基本如此,不一样的大概就是不同的方法去建立model,然后SVM也有很多变形。&br&&img src=&/06c71f65302a6cfe9b08e0ef3903cadc_b.jpg& data-rawwidth=&253& data-rawheight=&75& class=&content_image& width=&253&&&blockquote&&ol&&li&&b&验证码图像的预处理
&/b&&/li&&li&&b&建立模型&/b&&/li&&li&&b&识别&/b&&/li&&/ol&&/blockquote&接下来一个个的解释吧,亲!&br&&br&&b&验证码图像的预处理
&/b&&br&比如我们拿到以上“2907”这样子的图像,对吧,第一步需要做的就是分割使得每一个字符都很好的独立于各自的图像当中,所以,这样子之后呢,我们都会得到4张小的图像,这些图像分别表示为2,9,0,7,当然我们人眼很容易就知道这是什么,可是计算机不知道呀!&br&&br&分割之后,在要做的就是图像方面的处理啦,大概是让数字变的更加明显一点,比如灰度方面的处理。&br&&br&&b&建立模型&/b&&br&这个应该是最为critical的部分,我尽量说清楚些。其实在recognize这个验证码之前,我们会收集很多类似的图像,并且人工进行标注。比如说哈,&img src=&/0db1ae378f9e8fa54ac39c48c975488d_b.jpg& data-rawwidth=&378& data-rawheight=&310& class=&content_image& width=&378&&这样子的数据被称之为 training data,接下来就是建立各种各样的模型吧。可能会用PCA,LDA...之类的方法对这些training data进行简化描述。接下来会有蛮多recognition approach,根据不一样的approach建立不同的模型。这里讲常用的两种。&br&&ol&&li&&b&K-Nearest-Neighbour &/b&被称之为lazy learner,是因为其实不需要建立模型,用PCA,LDA..之类的方法对training data进行描述就好啦。待会讲详细的过程。&/li&&li&&b&Support Vector Machine &/b&应该是现在识别系统当最流行的方法啦,这个的的确确建立了个模型。如下图所示,我们会把training data投影到坐标系当中,然后找到一个hyperplane which best separates different samples。 之所以是hyperplane,数据的维度可能很高。SVM有很多变形,这里就不赘述啦。找到这个hyperplane之后,我们就可以进行识别啦。&img src=&/803d4cdcc15b6da6fdda1a303a5e871a_b.jpg& data-rawwidth=&800& data-rawheight=&862& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/803d4cdcc15b6da6fdda1a303a5e871a_r.jpg&&&/li&&/ol&&b&识别&/b&&br&&ul&&li&&b&K-Nearest-Neighbour (KNN) &/b&&/li&&/ul&我们把需要识别的图像称之为test case, test case经过上边同样的处理之后呢,我们就从training data当中选出离这个test case最近的K的training samples。 &img src=&/9c71d8fb0735cba7acddea_b.jpg& data-rawwidth=&578& data-rawheight=&330& class=&origin_image zh-lightbox-thumb& width=&578& data-original=&/9c71d8fb0735cba7acddea_r.jpg&&比如上边的这个例子,K = 5, 然后对于 x_q 而言呢,最近的5个samples,其中3个是negative,2个是positive,当然我们就会认为x_q是negative的啦,基本就是按照majority vote来个x_q分类。具体到验证码的话,假如一个图像最近的5个training samples当中有4个是“5”,一个是“6”,那么计算机就直接认为这个图像指向的是“5”。&br&&br&&ul&&li&&b&Support Vector Machine (SVM)&/b&&/li&&/ul&前边讲到说我们会找到一个hyperplane, 那么接下来需要做的就是计算test case到这一个hyperplane的距离,如果是 距离&0 (距离可以小于 0 哒,这个就看怎么定义方向啦) ,那么这个test case就会被label成positive,否则的话,那句只能是negative啦。具体到验证码,那就是个 multi-class SVM啦,因为会有 10 digits + 26 letters, 总共有36个class,那计算机机会建立好多个不一样的SVM,然后通过一些方法来对test case进行分类。&br&&br&第一次认真回答这么technical的东西,希望有帮助!想知道更多的话,建议去coursera上听听课。喔,对啦,之前讲过这个framework可以被引申到很多应用哒,其中一个就是沸沸扬扬的面部识别呀,这个有一个当时上课做的project,有兴趣的同学看看呗。&b&&a href=&///?target=https%3A///wihoho/FaceRecognition& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&wihoho/FaceRecognition · GitHub&i class=&icon-external&&&/i&&/a&&/b&
更新 推荐, 这位作者用python重写很多基本的Computer Vision算法,书的final draft在首页,代码也在Github上边。类似于验证码识别的问题呢,大家可以直接refer Chapter 8 - Classifying Image Content, …
转:验证码原来还有这个作用&br& 20:18:28 &br& 老网民们大概都记得,刚开始上网的时候,是不存在验证码(captcha)这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。&br&&br&
最先想要解决这一问题的是雅虎——作为互联网时代早期最重要的免费邮件提供商,他们一方面要解决用户们每天遇到的数以百计的垃圾邮件轰炸,另一方面,他们自己的免费邮箱,恰恰又是垃圾邮件的最爱——耗费无数资源所阻止的垃圾邮件,都来自于自己的服务器。这让雅虎开始认真考虑如何解决人机辨识问题。&br&&br&
他们找到一位当时刚刚21岁的天才——Luis von Ahn。 而Luis Von Ahn给出的方案,就是这个让人民群众微微皱眉,但是让计算机耸肩挠头的验证码。计算机辨识技术还很落后,对于经过扭曲、污染的文字,无法辨识。而人类却可以轻松认出这些文字。这是一个简单而巧妙的设计,计算机先是产生一个随机的字符串,然后用程序把这个字符串的图像进行随机的污染,扭曲,再显示给显示器前的人或者机器。凡是能够辨识这些字符的,即为人类。&br&&br&
故事还没完,Luis Von Ahn是那种追求完美的科学家。当全世界数以十亿计的人每天都会浪费几秒钟的时间参与辨认文字这一简单活动的时候,他开始思考,其中浪费的人脑智力是否能得到更好的应用呢?Luis Von Ahn的最终设计是,让人们用这些脑力解决一些计算机无法解决的“图书数字化”。&br&&br&
在计算机时代以前,印刷术已经存在了数百年,但这些印刷术所产生的书本和报纸等等,对于计算机来说都是模拟信号,仅以图像的形式存在,而非以数字化的形式存在。但是,早期的印刷术并不精确,文字大小不一,形象有差别。而且因为印刷品年代久远,拥有各种细微的缺损和污染。这对人眼来说不是什么大问题,但对计算机来说就麻烦了。&br&&br&
因此,2002年,luis Von Ahn开始让captcha引用各种无法被计算机辨识的文字图像,目前,已经有上万网站采用他的新一代captcha。每天帮助辨识数以百万计的古老文档。问题在于,对于最初的capcha来说,计算机实际上是知道答案的。而Luis希望人们辨识的文字,计算机实际上是不知道答案的,那如何能验证返回的答案到底是不是真的呢?&br&&br&
解决这个问题的方法依然体现了Luis一贯的简洁和优美,他让人们每次辨识两个,而非一个验证码,其中一个来自于计算机随机生成的字符串,而另一个则是从文档中选取的计算机不认识的字符图像。只要人们对前一个字符串给出的答案是正确的,那么就判定,人们对后一个验证码的辨识是正确的。&br&&br&
用这一方法,luis的captcha2.0 已经帮助完成了整个纽约时报130年的报纸存档数字化——这一本可能花费无数时间和资源的工程,在几个月之内就由各位网友们完成了。&br&&br&
创意天才!!
转:验证码原来还有这个作用
20:18:28 老网民们大概都记得,刚开始上网的时候,是不存在验证码(captcha)这么一种东西的。这造成的结果是,垃圾评论和垃圾邮件可以轻松通过任何一个网站的注册程序,通过各种方式轰炸人民群众的眼球。 最先想要解…
题主,不要误会,说起验证码,我不是针对你。。。。。&br&&img src=&/379f6fba2abbaa54e11c8bcdc4ee672a_b.png& data-rawwidth=&599& data-rawheight=&876& class=&origin_image zh-lightbox-thumb& width=&599& data-original=&/379f6fba2abbaa54e11c8bcdc4ee672a_r.png&&&br&&br&&a href=&///?target=http%3A//www.geee.net/contact.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Geee contact&i class=&icon-external&&&/i&&/a& , 拿去玩儿吧各位。
题主,不要误会,说起验证码,我不是针对你。。。。。
, 拿去玩儿吧各位。
&ul&&li&先来一个最轻松的&/li&&/ul&&img src=&/f88aec7ccdfcb_b.jpg& data-rawwidth=&476& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&/f88aec7ccdfcb_r.jpg&&&br&&br&&br&&ul&&li&这个是我遇到的,皮皮书屋验证码
填写程序结果&br&&/li&&/ul&&img src=&/a6224506bdbda14c2ec5a2_b.jpg& data-rawwidth=&634& data-rawheight=&214& class=&origin_image zh-lightbox-thumb& width=&634& data-original=&/a6224506bdbda14c2ec5a2_r.jpg&&&br&&ul&&li&add her as a friend, &b&rape now!?&/b&&/li&&/ul&&img src=&/169a877bd5ee6f5ab322a_b.jpg& data-rawwidth=&401& data-rawheight=&337& class=&content_image& width=&401&&&br&&br&&ul&&li& 这个就比较纠结了,到底是填还是不填&/li&&/ul&&img src=&/119fceec7eece03517cdc_b.jpg& data-rawwidth=&399& data-rawheight=&438& class=&content_image& width=&399&&&br&&br&&ul&&li&下面这个图片体现出了会中文的优势&/li&&/ul&&img src=&/7c49e80eeaff8c60b7ddac340e6a2261_b.jpg& data-rawwidth=&531& data-rawheight=&229& class=&origin_image zh-lightbox-thumb& width=&531& data-original=&/7c49e80eeaff8c60b7ddac340e6a2261_r.jpg&&&br&&br&&ul&&li&填写人物动作次数&/li&&/ul&&img src=&/8f8b951f9b8e27ed02eaa_b.jpg& data-rawwidth=&394& data-rawheight=&317& class=&content_image& width=&394&&&br&&br&&ul&&li&填写刑法第一章,第二章&/li&&/ul&&img src=&/6b108742febc3e5aa030_b.jpg& data-rawwidth=&393& data-rawheight=&426& class=&content_image& width=&393&&&br&&br&&br&&ul&&li&写出化学物质的中文名称&/li&&/ul&&img src=&/e85e433e56de86ddb372_b.jpg& data-rawwidth=&488& data-rawheight=&207& class=&origin_image zh-lightbox-thumb& width=&488& data-original=&/e85e433e56de86ddb372_r.jpg&&&br&&br&&br&&br&&ul&&li&写出高数题的结果&/li&&/ul&&br&&img src=&/4fd4cfc288baa2dd238e48a7bfca391a_b.jpg& data-rawwidth=&272& data-rawheight=&435& class=&content_image& width=&272&&&br&&br&&ul&&li&还有...&/li&&/ul&&img src=&/cda45ddc604e6a3e210c99c2ebb32739_b.jpg& data-rawwidth=&337& data-rawheight=&333& class=&content_image& width=&337&&&br&&br&&br&附:&br&后面 5 点引自知友&a class=&member_mention& data-editable=&true& data-title=&@郭瑞超& data-hash=&9f015e70cb& href=&///people/9f015e70cb& data-tip=&p$b$9f015e70cb& data-hovercard=&p$b$9f015e70cb&&@郭瑞超&/a& 的答案&a href=&/question/& class=&internal&&为什么网站验证码一般都设计的歪歪斜斜很难辨认清楚?&/a&&br&&br&其余部分是自己遇到的,部分是google上看到的。
先来一个最轻松的 这个是我遇到的,皮皮书屋验证码 填写程序结果 add her as a friend, rape now!? 这个就比较纠结了,到底是填还是不填 下面这个图片体现出了会中文的优势 填写人物动作次数 填写刑法第一章,第二章 写出化学物质的中文名称 写出高数题的结…
先说结论。&br&&b&验证码这种反人类的东西,短时间内是无法退出历史舞台的。但我们可以尽量优化它,尽量提升用户的体验。&/b&&br&&br&&br&¥¥¥¥¥¥¥¥¥¥¥¥¥分割线¥¥¥¥¥¥¥¥¥¥¥¥¥&br&&br&1.为什么要有验证码&br&&br&其实题主已经说到了,就是为了证明在网络的那端是一个人而不是一台电脑。那为什么要区分是人还是电脑呢?原因有很多,比如账号安全、反作弊以及反广告。&br&&br&&ul&&li&账号安全&br&&/li&&/ul&在我们日常的网络生活中,有两个词大家一定熟悉到不能再熟悉——账号以及密码。微博、微信、知乎、淘宝,这一切都少不了账号和密码。我们使用账号来区别人与人,用密码来保障每个人的账号不会被他人使用。&br&然而有密码就有破解密码。破解密码最简单的方式就是暴力破解,换句话说,就是一个一个地试,直到成功为止。如果这个尝试是由人工来进行,那么效率会是很低的。算上网页刷新的时间,一分钟最多也就试十几次。而如果换做机器来进行,在没有其他条件限制的情况下,一分钟试上几百上千次是很容易的事情。&br&&ul&&li&反作弊&br&&/li&&/ul&我们经常会看见网络上各种各样的投票活动。一般来说这些投票活动都会限制每个人只能投一次,来保证投票的有效性。这个时候就需要一种方式来确定坐在电脑前面的是人而不是机器。类似的情况还包括用微博垃圾粉、淘宝刷好评、抽奖用僵尸账号等等。&br&&ul&&li&反广告&br&&/li&&/ul&任何开放的社区都会面临垃圾广告的困扰。与账号安全类似,人工也就一分钟十几条,而机器能达到上百条。&br&&br&归根结底,人与机器的根本区别在于效率。在进行简单的重复性行为时,机器的效率是远超过人类的,往往是几十倍甚至上百倍,再考虑到机器不用休息,算下来工作效率差距将差别到千倍以上。所以我们必须要有一种方式,能够区分出坐在网络那一端的是人还是机器。就目前来说,这种方式就是“验证码”。&br&&br&2.能否减少验证码的使用,提升用户体验&br&&br&答案是肯定的。能。&br&网络工作者们在这方面进行了很多的努力,实现的方式也有很多,这里就不一一列举了,仅挑几种给大家做一下讲解。有兴趣的同学可以自己做下扩展。&br&&br&&ul&&li&阻止僵尸账号注册&br&&/li&&/ul&最基本的办法是限制同一IP在一定时间段内只允许注册有限数量的账号。然而这种办法可以通过变换IP的方式轻松突破。于是进一步的方法是通过cookie、udid、ua等方式进一步加以限制。我们甚至还可以通过用户的行为来进行判断。当用户注册时,如果他已经有在我们网站的浏览记录,并且该浏览记录符合人类的行为特征时,不显示验证码,否则就会显示。除此之外,用户的点击操作也可以作为判断的理由之一。&br&google的新技术reCAPTCHA是一个很好玩的东西,有兴趣的同学可以看一下&a href=&///?target=http%3A//.tw/news/92757& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Google釋出新版reCAPTCHA機制,只要點「我不是機器人」!&i class=&icon-external&&&/i&&/a&&br&&br&&ul&&li&保证账号安全&br&&/li&&/ul&账号安全包含很多种情况,这里仅以撞库或暴力破解之类大批量尝试为情景进行讨论。&br&首先我们可以做的是ip限制。同一ip一定时间段内只允许进行有限次数的尝试,然并卵,这可以被换ip工具轻松突破。为了应对这种情况,我们可以每隔5分钟统计一下服务器接收到的密码错误的登录请求,如果这个数值高于预设值,就认为现在有人在进行攻击,则登录时需要填写验证码。我们还可以进一步优化,与上面提到的用户历史行为做交叉对比。当用户存在符合人类行为特征的历史记录时,不显示验证码。&br&&br&&br&(还有其他,不多写了,反正都没赞。。。有兴趣的同学去看看这两篇文章吧)&blockquote&&h1&&a href=&/p/& class=&internal&&月饼怎么才能不被刷走?——AntiSpam小科普&/a&&/h1&&b&&a href=&/p/& class=&internal&&拦截撞库的几点心得&/a&&/b&&/blockquote&&br&&br&总结起来就是这么两点:&br&&ol&&li&增加多维度的逻辑判断。若能判断出用户为人,则不显示验证码。若能判断出用户不为人,则禁止操作。只有判断结果疑似为人疑似为机器时,才显示验证码。&/li&&li&优化验证码用户体验。上面提到的reCAPTCHA是一种方式,还有一种类似iphone滑动解锁的拼图二维码也是一种方式。&/li&&/ol&
先说结论。 验证码这种反人类的东西,短时间内是无法退出历史舞台的。但我们可以尽量优化它,尽量提升用户的体验。 ¥¥¥¥¥¥¥¥¥¥¥¥¥分割线¥¥¥¥¥¥¥¥¥¥¥¥¥ 1.为什么要有验证码 其实题主已经说到了,就是为了证明在网络的那端是一个人…
在这个“万众创新”的时代,验证码也是八仙过海,各显神通,&br&有Google的点击验证、淘宝的滑动验证、极验的拼图验证。&br&&br&现在又多一款通付盾“滑动解锁”,而他背后的技术究竟是什么呢?待我细细分析:)&br&---------------------------------------------------------------------------------------------------------------&br&&b&[12.10号更新]&br&&/b&&br&“通付盾”的开发迭代速度很快,JS已经更新,现在在会在请求之前使用一个jsonp请求做提交服务端判断,后续在登录时基于cookie中的sessionid做关联。&br&&br&不过,服务端校验逻辑还有待加强,至少加上&b&抗重放&/b&吧:)可以考虑找我帮忙reiview下架构。&br&&br&&b&为更新速度点赞,不过少年不要过于自满,这个世界并不是只有你眼中所看到的世界:)&/b&&br&&img src=&/0aa55a91b7bfda1df50c1c369d06c7b7_b.png& data-rawwidth=&1274& data-rawheight=&150& class=&origin_image zh-lightbox-thumb& width=&1274& data-original=&/0aa55a91b7bfda1df50c1c369d06c7b7_r.png&&&br&后续不会再研究这个简单的JS了:)&br&---------------------------------------------------------------------------------------------------------------&br&&b&【12.11最后补充】&/b&&br&&br&&a data-hash=&fdcdb3f61875c75dddfd80c995badc14& href=&///people/fdcdb3f61875c75dddfd80c995badc14& class=&member_mention& data-editable=&true& data-title=&@Ge Garry& data-hovercard=&p$b$fdcdb3f61875c75dddfd80c995badc14&&@Ge Garry&/a& 真的没有兴趣再讨论这个JS了,你说我无法判断是否进行服务端判断了,我说我能判断。我就明确地告诉你这一点。我是身经百战的。&br&我根本不关心你服务端做了什么判断,&b&如果我只需要输入账号+密码,不需要验证码,即可知道我的账号密码是否正确,那么该验证码即等同于无效&/b&。即使你们在服务端通过前端异步请求、还是什么模型对我做了精确的分析,一年之后会跨省追捕我,也没有意义。因为用户的账号、密码因为没有验证码的保护,已经被批量扫号盗走了。。。很不幸,你们的产品就这德性。&br&想清楚这一点,再重构你们的产品吧。。。&br&---------------------------------------------------------------------------------------------------------------&br&&b&【12.11晚感想】&/b&&br&&br&&br&我浪费这么多时间,跟一个不懂安全还在做安全产品的公司解释安全问题,我真的是醉了。感情我是在和贵司的销售还是产品经理讨论技术问题。&br&---------------------------------------------------------------------------------------------------------------&br&&b&【精简结论】&/b&&br&&br&知道大家没有耐心看详细分析,先把结论给出:&br&通付盾所谓的“滑动解锁”不过是一个前端的小把戏而已,根本&b&没做任何判断&/b&,用户&b&无需任何操作即可通过验证&/b&;&br&总结一下,通付盾想简单的&b&前端混淆&/b&来&b&实现信息隐藏&/b&来保障安全,这种产品估计是产品经理拍脑袋YY出来的:)&br&所以“滑动解锁”并非创新,纯属大跃进中的一个噱头而已。&br&相较而言极验的滑动拼图验证虽然原理上和通付盾类似(&b&片面的依赖前端的混淆做到信息隐藏&/b&),也能被破解&a href=&///?target=http%3A///t/138479& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&豆瓣登陆验证码的识别脚本&i class=&icon-external&&&/i&&/a&,但至少增加了服务端的判断环节,节操还是比通付盾高多了。&br&&br&---------------------------------------------------------------------------------------------------------------&br&&b&【技术分析】&/b&&br&&br&&br&1)在页面中找到滑动解锁的初始化代码,看到滑动解锁的核心代码在&a href=&///?target=http%3A//.cn/did/js/dpa.js& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&.cn/did/&/span&&span class=&invisible&&js/dpa.js&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 这个JS中;&br&&img src=&/3fbe40027_b.png& data-rawwidth=&886& data-rawheight=&148& class=&origin_image zh-lightbox-thumb& width=&886& data-original=&/3fbe40027_r.png&&2)该JS被混淆过,费了些心思把JS混淆代码还原成明文,再分析一下执行逻辑;&br&&img src=&/5d2defbbae262_b.png& data-rawwidth=&2082& data-rawheight=&604& class=&origin_image zh-lightbox-thumb& width=&2082& data-original=&/5d2defbbae262_r.png&&&br&3)滑动解锁成功核心代码如下,对应的d()函数即plc.makeSlide(&lock-area&,data,hhh)中传入的hhh函数;&br&&img src=&/625e0a6ed60b5abcc17f2fe_b.png& data-rawwidth=&2388& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&2388& data-original=&/625e0a6ed60b5abcc17f2fe_r.png&&&br&4) 最后看看hhh回调函数的核心逻辑如下,只是给前端unLock变量置位,即为判断结果;&br&&img src=&/f92d644dc6fea356b6dd394_b.png& data-rawwidth=&374& data-rawheight=&116& class=&content_image& width=&374&&&br&我表示&br&&img src=&/d178ff0c9ddec6513a19bda97cef0a67_b.png& data-rawwidth=&480& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&/d178ff0c9ddec6513a19bda97cef0a67_r.png&&&br&&br&5) 再分析登录请求,果然是没对验证码做任何校验&img src=&/cb2dabbfd4a3_b.png& data-rawwidth=&100& data-rawheight=&114& class=&content_image& width=&100&&&br&&img src=&/430a4e4d9f94cec6ce1152_b.png& data-rawwidth=&770& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&/430a4e4d9f94cec6ce1152_r.png&&
在这个“万众创新”的时代,验证码也是八仙过海,各显神通, 有Google的点击验证、淘宝的滑动验证、极验的拼图验证。 现在又多一款通付盾“滑动解锁”,而他背后的技术究竟是什么呢?待我细细分析:) ---------------------------------------------------…
ILJ0OQ92Z这些字母都不应当出现在验证码,且验证码不应区分大小写。&br&&br&出现这些字母和区分大小写的验证码都是程序员和产品经理不专业的表现。
ILJ0OQ92Z这些字母都不应当出现在验证码,且验证码不应区分大小写。 出现这些字母和区分大小写的验证码都是程序员和产品经理不专业的表现。
好问,&br&&br&刷了12306的验证码N次了,如果以图片版权来看和分类的话,不外乎是那几个类别&br&&br&1.摄影作品&br&(很明显的版权摄影作品,有后期处理过的类型,有抠图过的,甚至刷出过矢量图)&br&&br&2.生活常见的含有商标的快速消费品图片(怡宝矿泉水、老干妈、方便面、酱油等)&br&&br&3.网络上的常见图片,别人家商品的详情介绍图等等&br&&img src=&/3bdfbb2f_b.jpg& data-rawwidth=&475& data-rawheight=&292& class=&origin_image zh-lightbox-thumb& width=&475& data-original=&/3bdfbb2f_r.jpg&&&img src=&/be945db9cd89eabc947aab_b.jpg& data-rawwidth=&476& data-rawheight=&283& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&/be945db9cd89eabc947aab_r.jpg&&&br&&img src=&/366c0e09aa1ab4fa7b85de4e_b.jpg& data-rawwidth=&469& data-rawheight=&288& class=&origin_image zh-lightbox-thumb& width=&469& data-original=&/366c0e09aa1ab4fa7b85de4e_r.jpg&&&br&以上为节选截图。&br&&br&那么问题来了,问题有几个,跟题主类似。&br&&br&&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&算是商业机构吗?&br&2.图片用在网站验证码上,那不算直接盈利,也算是商业用途吗?&br&3.图片这么模糊,像素不达标,也算侵权吗?&br&&br&&b&问题一&/b&&br&根据网站备案号查询:&a href=&///?target=http%3A//www./& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Index&i class=&icon-external&&&/i&&/a&&br&&img src=&/ff45a562e3c_b.jpg& data-rawwidth=&1293& data-rawheight=&216& class=&origin_image zh-lightbox-thumb& width=&1293& data-original=&/ff45a562e3c_r.jpg&&&br&12306主办单位是中国铁路总公司,性质属于企业&br&&br&国有独资,央企,有盈利性质&br&&img src=&/7edec7cb9b76f_b.jpg& data-rawwidth=&804& data-rawheight=&495& class=&origin_image zh-lightbox-thumb& width=&804& data-original=&/7edec7cb9b76f_r.jpg&&&br&&a href=&///?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&是一家太极计算机股份有限公司负责的,太极股份的实际控制人是国资委,成立于1987年,是一个拥有近800名员工,注册资金7000多万,年营业额超过10亿元人民币的IT企业。&br&&br&&b&&a href=&///?target=http%3A///3681279.shtml& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&12306网站1票难求!太极1.99亿中标钱花哪了?&i class=&icon-external&&&/i&&/a&&br&&/b&&br&&img src=&/d83cef5f28cc73a9948f0b_b.png& data-rawwidth=&445& data-rawheight=&453& class=&origin_image zh-lightbox-thumb& width=&445& data-original=&/d83cef5f28cc73a9948f0b_r.png&&&br&&br&&br&&br&两者都是实打实的公司,属于商业机构范畴。&br&&br&&br&那央企用图就不用付钱吗?&br&&br&以下选自《中华人民共和国著作权法》第四节&br&&br&&p&&strong&第四节 权利的限制&/strong&&/p&&p&&strong&第二十二条&/strong& 在下列情况下使用作品,可以不经著作权人许可,不向其支付报酬,但应当指明作者姓名、作品名称,并且不得侵犯著作权人依照本法享有的其他权利:&/p&&br&&p&(七)国家机关为执行公务在合理范围内使用已经发表的作品;&br&&/p&&br&&br&12306是企业性质无疑,也不算是行政执法部门,用图要买版权。&br&&br&&br&&b&问题二&三 一起回复&/b&&br&现代图片的授权模式一般分为RF和RM两种,而RF分为高级授权和普通授权&br&&br&以123RF微利正版图片库为例&a href=&///?target=http%3A//.cn/%& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&图片库_中国第一商业图片素材网_123RF图库&i class=&icon-external&&&/i&&/a&&br&&img src=&/08fb1e818d9fc65efe04fe97b5de7d23_b.jpg& data-rawwidth=&934& data-rawheight=&626& class=&origin_image zh-lightbox-thumb& width=&934& data-original=&/08fb1e818d9fc65efe04fe97b5de7d23_r.jpg&&只要是用于网站上的图片素材,只要是商业用途,无论像素大小都必须购买图片授权。&br&12306这种情况可以采购RF普通授权,以其所需量和所需的图片像素,大概就几块钱一张。&br&&br&在国外,图片使用权的买卖是一个很成熟的市场,普通人连博客用的配图都会通过正规图片供应商,及stock photo网站购买所需图片。&br&&br&要说这个故事很长,之后大家有兴趣再奉上。&br&&br&最后吐槽一下,能弄点稍微清晰的验证码图片吗?KB不会差好远吧?我先买车票回家,@@
好问, 刷了12306的验证码N次了,如果以图片版权来看和分类的话,不外乎是那几个类别 1.摄影作品 (很明显的版权摄影作品,有后期处理过的类型,有抠图过的,甚至刷出过矢量图) 2.生活常见的含有商标的快速消费品图片(怡宝矿泉水、老干妈、方便面、酱油等…
已有帐号?
无法登录?
社交帐号登录}

我要回帖

更多关于 验证码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信