Android滑动拼图行为验证码

作者: 程序猿小钟 | 来源:发表于2021-11-17 17:50 被阅读0次

前言

行为式验证码是新型的人机验证方式,能高效的拦截机器的行为,具有极高的安全性和极致的用户体验。目前行为式验证码具有多种类型,例如滑动拼图验证码、文字点选验证码、图标点选验证码、推理拼图验证码等。有很多厂家都出了相关的SDK(当然这都是要收费的),例如网易易盾、云天、极验,顶象等。

下面我介绍一个有关滑动拼图验证码的开源库。

滑动拼图行为验证码

首先我先贴上这个滑动拼图行为验证码的github链接:

GitHub - luozhanming/Captcha: Android滑块拼图验证码控件

大家可以自己去下载源码来分析、优化并且进行扩展。

首先我们可以看看这个demo的效果图

此开源库实现了两种滑动拼图行为验证码方式,一种是依靠滑动条来控制拼图的位置,另外一种则是依靠触摸缺块拼图来完成验证。

首先我们要在自己的项目中引入这个开源库,有两种引入方式,直接通过build.gradle引入依赖或者下载github上源码把源码中的library作为module引入项目:

在布局中配置Captcha控件

实列化Captcha类,设置滑动拼图的图片并且实现监听,滑动拼图的验证结果都会通过CaptchaListener回调,我们可以在onAccess、onFailed、onMaxFailed的回调方法中处理不同的操作。

以上就是它简单的使用方式,下面我们来看看开源库的源码。

源码中创建了CaptchaListener接口,此接口定义了三个方法,分别是onAccess、onFailed和onMaxFailed,代表的操作分别是验证成功,验证失败,失败次数已达上限。

在Captcha的构造函数中,自定义了几个属性,分别是:

drawableId:设置滑动拼图的背景图;

progressDrawableId:设置滑动条的样式图片;

thumbDrawableId:设置滑动块的样式图片;

mMode:设置控件验证模式,分别为MODE_BAR【有滑动条】和MODE_NONBAR【无滑动条】;

maxFailedCount:设置最大失败次数;

blockSize:设置拼图缺块的大小;

介绍完自定义属性后,我们看一下控件的初始化的方法

首先初始化控件,setMode是设置当前的模式,是有滑动条还是无滑动条,然后判断是否设置了drawableId,drawableId不为空的话,设置滑动拼图的图片,setBlockSize设置缺块的大小,然后vertifyView.callback是处理用户操作滑动拼图是否成功的回调,而setSeekBarStyle则是设置滑动条和滑动块的样式,seekbar.setOnSeekBarChangeListener则是监听滑动条的滑动状态,refreshView则是左上角的刷新图片,用来刷新拼图的缺块位置的。

这些都是附加配置,如果有不符合自己需要的话,其实也可以找到对应的地方,进行改造。

我们还可以自定义拼图样式,自己实现Captcha的策略,详情可以参考开源库中的DefaultCaptchaStrategy,并且自行改造。

而此库中最重要的就是PictureVertifyView这个自定义的图片控件,里面实现了阴影的绘制,缺块的绘制,滑动或者触摸时缺块的动画绘制,还有滑动后是否验证成功,触摸后是否验证成功的检测方法等。下面我截部分代码介绍一下实现方式,详情可以自己下载github中的demo继续研究研究。

在MODE_BAR的模式下,监听滑动条的事件,分别是:

onStartTrackingTouch:开始触摸滑动块事件;

onProgressChanged:移动触摸块事件;

onStopTrackingTouch:停止触摸滑动块事件;

PictureVertifyView中的down、move方法设置当前滑动拼图的状态并且计算对应的left值,然后重绘此控件,实现缺块滑动的动画,在停止滑动后,回调onStopTrackingTouch方法并且调用了loose方法去检测滑动拼图验证是否成功

checkAccess方法检测滑动拼图是否通过并且callback onSuccess和onFailed的方法,在该回调方法中,实现CaptchaListener接口中的onAccess、onFailed和onMaxFailed方法。

而在MODE_NONBAR的模式下,则是监听触摸事件来判断滑动拼图操作是否成功:

其实触摸的实现方式,类似于滑动的实现方式

只要理解了滑动模式的实现方式,无滑动模式的实现方式一定能理解,这里就不再重复介绍了!

Captcha的滑动拼图行为验证码的开源库就介绍到这里啦,下面顺便贴出库主的博客:

Android拼图滑块验证码控件_LawCoder的博客-CSDN博客_android 滑块验证

其实大家最好是自己阅读源码,训练阅读源码的能力并且还可以进行源码的改造,实现你自己自定义的滑动拼图行为验证码,如果觉得开源库中有什么实现不好的地方还可以自己优化,例如开源库中使用的网络加载图片的方法就非常的旧~可以自己封装一个新的网络框架去加载图片等。

                          2021年11月1日程序猿小钟带着【Android滑动拼图行为验证码】到此一游~

相关文章

  • Android滑动拼图行为验证码

    前言 行为式验证码是新型的人机验证方式,能高效的拦截机器的行为,具有极高的安全性和极致的用户体验。目前行为式验证码...

  • 验证码分类

    验证码类型 1、图形验证码 2、交互式验证码 1)滑动拼图 2)点选 3)短信上行

  • android滑动拼图验证码控件

    滑动拼图验证码一般我们在网站上可以经常见到,本篇文章给大家介绍该效果在android端的是如何实现 首先看一下效果...

  • 反滑块验证

    简介 滑动验证码: 滑动验证码也可以叫做行为验证,其中最出名的就是极验。 作者:Simon0903 链接:http...

  • 【Android】仿斗鱼滑动拼图验证码控件

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布转载请标明出处: http://www.jian...

  • js 滑动拼图验证码

    以前的验证码很简单,就是一个带些背景色或背景图和干扰线的纯数字字母类的验证码,现在已经发展变得很丰富了。我见过的就...

  • 简单的表单验证码

    一般表单中都有验证码,网易易盾有个验证码服务,有些验证做的挺好看。 比如有滑动拼图验证: 还有点选验证: 网易易盾...

  • vue @mousemove实现拖动,鼠标移动过快拖动卡顿

    需求 使用vue实现滑动拼图验证码 踩到的坑 使用@mousemove绑定事件拖拽速度过快有严重的卡顿 源代码 解...

  • Android 拼图验证码

    公司提了个需求,要求弄个图片验证码代替之前登陆界面手输验证码,对于用户确实很方便,杠杠的提升用户体验,但是对于开发...

  • 网易滑动验证码破解

    1.滑动验证码 前面介绍了利用 tesserocr 来识别简单的图形验证码,和利用openCV识别滑动验证码的缺口...

网友评论

    本文标题:Android滑动拼图行为验证码

    本文链接:https://www.haomeiwen.com/subject/ariltrtx.html