订阅移动开发RSS CSDN首页> 移动开发

《近匠》火柴手写码,输不错的验证码利器

发表于2015-04-10 10:45| 次阅读| 来源CSDN| 0 条评论| 作者Zion

摘要:《近匠》第78期,登录网站时输入验证码是件复杂的事,不仅字符难以辨认,而且由机器随机组合、扭曲的验证码还很容易被攻破。火柴手写码将手写字符与验证码技术相结合,让用户更容易辨认,机器更难攻破。

在登录网站时往往会需要输入一些乱七八糟甚至难以辨别的验证码以便证明用户是个真实的个人。更糟糕的是,电脑前的你即便试了多次也难以成功。这一问题在今后将不再出现。由创业团队火柴棍工作室研发的“火柴手写码”能抵御插件工具的破解难度,并且同时保证验证码图片的清晰。

火柴手写码,是由一群80/90后码农,在饱受验证码开发之苦后研发出来的。其前端操作过程同一般的验证码输入方式无异。最大不同在于后台技术——它将海量手写图片资源进行碎片化处理,随机组合、加密生成图片验证码,能使现有OCR技术很难识别,更加安全可靠。这对主要通过服务器自动识别验证码的木马软件来说,会起到遏制作用。那么手写验证码的原理是什么?它又有哪些独特之处呢?针对这些问题,CSDN采访了火柴手写码的项目负责人葛付荣。

CSDN:请介绍一下你和你的团队。

葛付荣:我们的团队是由一群开发经验丰富的80/90后码农组成。此前我们主要从事游戏平台和办公平台的开发工作,曾推出过手机助手、积分平台等相关产品,对厂商和用户都有接触与了解。

CSDN:开发手写验证码是出于什么样的契机?

葛付荣:验证码是开发者与使用者都会被困扰的一个问题,并且目前还没有一种最好的解决办法出现。为了寻找用户体验与系统安全间的平衡点,我们曾经不断推出各种验证码,直至2014年11月一次偶然的机会,我们掌握了海量手写字符的生产方法之后,决定将手写字符与验证码技术结合起来并尝试推出火柴手写码。火柴手写码是一种清晰、安全、方便的云验证码服务。

CSDN:火柴手写码与一般验证码有什么不同?

葛付荣:火柴手写码旨在基于海量手写字符与复杂安全技术,为开发者构建云验证码开放平台。其前端操作过程同一般的验证码输入方式无异。最大的不同在于后台技术——火柴手写码是将海量手写图片资源进行碎片化处理,随机组合、加密生成图片验证码,能使现有OCR技术很难识别,更加安全可靠。这对主要通过服务器自动识别验证码的木马软件来说会起到遏制作用。

火柴手写码最大特点是它所采用的手写字符。手写字符的识别工作在OCR领域一直是个难题,目前尚没有高效、低成本的解决方案。因为即便同一个人,在不同时间、不同场景下书写同一个字符,由于书写时的方式、笔、纸张、环境等因素的不同,都可能导致书写结果的不一致。当然,光有原始素材是远远不够的。火柴手写码还需经过过滤、切割、降噪、再组合等过程,才最终形成用户所看到的验证码。而在这一复杂过程中,我们最终得到的是肉眼更易识别,但OCR(Optical Character Recognition,光学字符识别)难以识别的字符验证码。

CSDN:请谈谈火柴验证码的技术实现原理。

葛付荣:传统图片验证码一般是由程序自动扭曲字符生成,因为源图片内容单一、混淆算法有限、干扰因素较多,容易被穷举破解,而且用户体验较差。这就是为什么像12306这类网站即便在前端不断提高用户验证难度,却仍然会被抢票软件轻松破解的原因之一。

然而火柴手写码所采用的手写字符,其识别工作在OCR领域一直是个难题。正如上面所说,即便是同一个人,在不同时间、不同场景下书写同一个字符,由于书写时的方式、笔、纸张、环境等因素的不同,都可能导致书写结果的不一致。下图是同一人书写的24个数字“8”。正是基于人手写字符的难破译性,火柴手写码在经过对国人书写习惯的识别和研究后,形成了稳定手写数据收集渠道,庞大而复杂的字符数据库为火柴手写码的诞生提供素材保障。

CSDN:数据收集之后的具体处理经过是怎样的?

葛付荣:收集到大量手写数据后,火柴手写码还需经过过滤、切割、降噪、再组合等过程,才最终形成用户所看到的验证码。

过滤切割:为增加破解难度,手写素材要经过源数据过滤系统的过滤,以及在有效区域内切割成单字符图片,去除掉模糊、残缺的素材后才可进一步使用。

降噪:经过过滤切割后,还将采用均值滤波器、中值滤波器等图像降噪方法,最大化地去除干扰因素,获得更清晰、肉眼容易识别但OCR难以识别的图片。

再组合:在得到有效的单字符图片后,火柴验证码还需按照一定的算法随机组成,才可形成最终验证码。并且在这一过程中,系统会自动规避掉重复数字以及简单规律数字的组合可能。以6位数字验证码为例,系统会取6张有效的单数字图片组合在一起,如果遇到安全性略差的连续相同数字的话,则会重新组合。

这一系列处理的好处是,保证了手写验证码难以破解,但用户在使用上又不会难以识别。火柴手写码一直坚持简单操作的用户体验原则,所以用作生成手写码的字符都是一些普通用户常见的字符,且字符间距较大,不会出现传统验证码的扭曲、粘连现象,用户更容易辨识,操作更加轻松简单。目前,火柴手写码提供Demo、SDK。开发者可以将手写码轻松地部署到网站或其他产品上。从而节省开发成本。

CSDN:这个项目目前有哪些渠道与其他开发者合作?

葛付荣:火柴手写码一定是与其他开发者合作才有其存在价值与生存空间的。在产品设计之初我们就遵循可轻松部署、快速集成的原则。目前我们已经推出开放平台,希望越来越多的开发者能使用我们的验证码,而不是费时费力地自行开发。

CSDN:2015年在项目运营中有哪些规划?

葛付荣:我们将继续在清晰度与安全性之间寻找平衡点,争取用户一眼就能看清、OCR五秒都无法识别。此外,还计划从目前的纯数字逐渐形成数字、英文字母、简体中文汉字,以及其他特殊字符等多种手写码混排的格局。并且还将尝试每个手写码有且只用一次,以此提供破解复杂度。结合大数据行为分析,火柴手写码还将在不降低安全性的前提下为不同的用户推荐不同的手写码。例如:为喜欢数字的用户提供数字验证码,为喜欢汉字的用户提供汉字验证码等。另一方面,我们在今年计划逐渐将产品推向市场。逐步扩大邀请开发者试用范围,促成更多网站、游戏使用火柴手写码。


【《近匠》AR学校:从教育领域看增强现实机遇何在】《近匠》第77期:从创业公司LeapMotion、uSens到微软,越来越多的公司开始走进VR与AR领域,就连苹果也不例外。“AR学校”从2005年便开始接触AR技术,CEO赵良华从研发与市场角度分析了AR的现状。

【《近匠》SENSORO CTO赵东炜:解密iBeacon生态】《近匠》第76期:微信推出的“摇一摇周边”功能,通过连接人与场景,让iBeacon技术以巧妙的角度融入了我们的生活。技术上,复杂的场景要如何部署?市场上,有哪些机会和问题?为此我们采访了SENSORO的CTO赵东炜。

【《近匠》Amaze UI:做最懂中国程序员的开源HTML5框架】《近匠》75期,HTML5的定稿以及Web组件化让移动Web开发到了异常火爆的地步,跨屏跨平台的开源HTML5开发框架Amaze UI强调移动优先,为国内的开发者提供最具本土特色的组件工具,降低开发门槛,让应用开发变得更简单。

回顾更多内容及线下开发者活动信息,请关注mobilehub公众微信号(ID: mobilehub)


寻求《近匠》免费报道,请私信:@CSDN移动,或发送邮件至mobile#csdn.net。

0
0
  • CSDN官方微信
  • 扫描二维码,向CSDN吐槽
  • 微信号:CSDNnews
程序员移动端订阅下载

微博关注

相关热门文章