1.前端形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
2.Python OpenCV 过点击式和滑动式图形验证码的源码验证校验
3.按键精灵安卓版对接联众打码平台
4.uniappåhbuilderçå
³ç³»ï¼
前端形学实战: 从零开发一款轻量级滑动验证码组件(vue3 + vite版)
本文将带领大家使用 Vue3 + Vite 来实现滑动验证码组件。组件实现将包括效果演示、滑动技术实现、源码验证滑动验证码组件的滑动使用方式、以及组件的源码验证交互流程等关键内容。
首先,滑动商城 手机 源码下载让我们预览一下滑动验证码实现的源码验证效果。在进行技术实现之前,滑动我们需要明确组件的源码验证设计需求,并制定合理的滑动开放 API。这里分享了滑动验证码组件优雅设计的源码验证原则,以及核心 API 的滑动设计。滑动验证码组件的源码验证灵活性是其受欢迎的关键因素,包括但不限于背景颜色、滑动滑块样式、源码验证滑动路径等可配置项。
在具体实现过程中,需要实现以下几个核心功能:滑动验证、随机、随机位置、镂空效果、星外源码拖拽移动与验证逻辑等。我们将在 canvas 上实现不规则图形的绘制,包括路径、填充颜色、globalCompositeOperation 属性的设置等,确保图形不受背景影响。此外,实现随机与随机位置,以及镂空效果需要使用 canvas 的 imageData API,包括 imageData 和 putImageData 方法。
接下来,我们将通过鼠标事件实现滑块的移动逻辑,并在拖拽结束后监听验证成功与失败的回调事件。在 Vue3 组件中,实现方式与之前 React 版本类似,主要区别在于 API 的使用与定义。
实现滑动验证码组件后,将其发布到 npm 服务器,提供 npm 方式直接使用的方便性。打包组件时,源码安装nload使用 Vite 进行配置,发布后的组件结构将被展示。对有兴趣的开发者,可以查看完整的源码与打包过程的说明。
组件的扩展性是其另一大优点,基于业务需求,可以对验证码进行改造,实现更复杂的功能或多种形态的验证码,欢迎开发者贡献自己的想法,共同打造有意思的验证码组件。
后续规划中,将围绕图形可视化实现更多有趣的应用,如 3D 可视化、图形编辑器、可视化图表等,敬请期待。
希望本文能对您有所启发,如对您有所帮助,请记得点赞与评论,让我们一起探索前端技术的cocos lua源码精彩。
Python OpenCV 过点击式和滑动式图形验证码的校验
在近期进行App抓包的过程中,我发现该App在特定时间会弹出验证码。完成验证后,系统会提供token,此token是发起正常请求所必需的。
文章源码地址:github.com/ThinkerWen/C...
以下是验证码的截图:
弹出验证码的Response如下:
完成验证码的Request如下:
通过观察,我发现只需将验证码的点击坐标发送至完成验证码的接口,即可获取到token。因此,现在的目标是提取坐标。
观察发现,这个验证码相对简单,因为它没有图案扭曲,所以通过率较高。同时,我也回忆起之前解决滑动验证码的方法(一并展示)。
要通过验证码,首先需要将目标图案在背景上定位,找到其像素点。为此,dnsmasq源码剖析我使用了Python的OpenCV库进行识别。
1.提取:首先,我发现目标都是黑色图案,背景为透明。当我使用cv2.imread(front_image)加载时,显示一片漆黑。即使后来我使用了保留透明通道的加载方式,结果依旧。
为了解决这个问题,我决定剥离透明通道,将目标图案透明色设置为白色,这样目标图案就自然显现了。
2.找到目标图的位置:接着,我将目标的三个图案分割出来,分别找出它们的像素位置。由于图案排列位置固定,我直接记录坐标进行像素分割。
分割后,我将目标图和背景图都转化为灰度,以防止颜色干扰。
然后进行最佳匹配。然而,匹配结果并不理想,无法准确找到所有三个目标图案,因此需要进一步优化。
3.优化匹配方案:继续观察后,我发现背景中的目标图案总是白色的,因此我决定保留背景上的白色部分,其余部分转为黑色。
为了尽可能保留完整的图案,我经过多次尝试,发现-区间的RGB颜色可以保留大部分目标图案的白色。
同时,我将黑色的目标图案反转为白色。
由于需要获取的是点击坐标,我将左上角坐标(x1,y1)进行+的偏移,以移动到图案本身上面。
经过验证,现在的识别方法可以正常通过点击验证码。
滑动验证码的解决方案与点击验证码类似,甚至现在常见的一种滑动验证码已经有了通用的代码。
看雪ID:暮至夜寒
看雪-安全社区|安全招聘|kanxue.com
本文为看雪论坛精华文章,由暮至夜寒原创,转载请注明来自看雪社区
阅读原文:
按键精灵安卓版对接联众打码平台
文章标题:按键精灵安卓版对接联众打码平台
现在,为了限制自动操作,平台或软件常常会增加验证功能。例如,可能会使用验证码等手段。为了解决这类验证问题,我们可以通过对接打码平台来完成验证。以联众打码平台为例,我们将介绍如何具体操作。
第一步,下载联众打码平台提供的源码。下载地址为:jsdati.com/docs/sdk。下载后,你会得到一系列文件,其中我们主要关注“手机按键”文件(lzdm.lua)和“按键精灵手机助手”源文件(后缀mqb)。lzdm.lua文件是按键精灵安卓版的插件文件,而mqb文件则是核心文件,用于导入按键精灵中。
第二步,安装和使用联众提供的文件。将lzdm.lua插件复制到按键精灵安装目录下的Plugin文件夹中,完成插件的安装。重启按键精灵后,导入联众识别2.0新接口范例文件,并填写相关用户数据。
第三步,填写用户数据。登录联众账户后台,创建新软件,填写描述和名称,获取密钥中的联众2.0接口Secret。至此,准备工作完成,我们即将进入实战操作阶段。
实际操作示例:识别验证码。首先,使用按键精灵的截屏命令将验证码单独截图,确保只截取红框内内容。之后,将截图上传给联众平台,平台识别后返回结果。
具体操作步骤如下:在截屏命令中使用SnapShot "/sdcard/pictures/lianzhong.png",,,,进行截图操作。确认截图已保存在雷电共享文件夹中。接着,将截图上传给联众平台,根据提示填写用户数据,特别注意验证码类型“tpe”的参数填写。如果有任何疑问,可以访问jsdati.com/docs/price查询类型描述,或直接联系联众客服获取帮助。填写完成后,将截图命令填入脚本中,运行脚本查看识别结果。
脚本识别结果将在代码中显示,通常会通过Result变量呈现。根据识别结果,可以将内容直接输入到验证框中。对于需要处理的返回值,如多个坐标,可以使用相应代码进行处理。对于滑块验证,需分段进行滑动操作以避免被检测为脚本操作。
值得注意的是,联众平台识别并非%准确,当出现填写验证结果未通过的情况时,可以将错误提交给联众平台,平台会确认识别错误并返还扣除的点数。此外,联众平台识别的基本原理与对接代码直接提供的原理一致,即通过post提交给平台,与之前描述的百度云识别原理相同,只是使用了lua语言进行编写。
uniappåhbuilderçå ³ç³»ï¼
uniappå¼åå®åappéè¦ä»ä¹å¼å软件
æ¨èææuniappç跨端å¼åé½ä½¿ç¨HBuilderXè¿è¡å¼åï¼è¿éæ¨èä¸æ¯å 为webstormãvscodeæä¹æ ·ä¸å¥½ï¼èæ¯å 为HBuilderX对uniappçè¯æ³åvueç¸å ³çæ示æ´ä¸ºçæ¹ä¾¿ï¼ä¸æ´è½»éãç¥è¯åå¤ï¼çævueçç¸å ³è¯æ³ã
第äºç§æ¯Uni-appæ¡æ¶åºäºVue.jsãä¿ç§°ä¸å¥ä»£ç ç¼å°8个平å°ä¸ã
uni-appæ¯ä¸ä¸ªä½¿ç¨Vue.jså¼åææå端åºç¨çæ¡æ¶ï¼å¼åè ç¼åä¸å¥ä»£ç ï¼å¯åå¸å°iOSãAndroidãH以ååç§å°ç¨åºï¼å¾®ä¿¡/æ¯ä»å®/ç¾åº¦/头æ¡/QQ/éé/æ·å®ï¼ãå¿«åºç¨çå¤ä¸ªå¹³å°ã
踩åè®°-uniapp+uView(HBuilder)
1ãQï¼æ¹æ¡1ï¼æåæç´¢å¾æ çåå æ¯ï¼å¤ä½çé£ä¸ªç°è²æç´¢å¾æ æ¯ç§»å¨ç«¯è§£æinputtype=searchæ¶ï¼èªå¸¦çå¾æ æ ·å¼ãæ åªéè¦å°inputsearchç±»åæ¹æ常è§textç±»åå³å¯ã
2ãæè¿è¦ä»é¶å¼åä¸ä¸ªè·åå°ç®¡çç³»ç»å¯¹æ¥çå°ç¨åºï¼å 为åè½æ¯è¾å¤æï¼æ¶é´çï¼éæ©äºæ¯è¾ç«çuni-appï¼å 为å°ç¨åºåºç°çæ¶é´è¾çï¼åæ¹é¢å¹¶ä¸å®åï¼å¼åè¿ç¨ä¸å°±æ¯ä¸æ踩åçè¿ç¨ï¼ç¹æ¤è®°å½ä¸å°ä¸ã
3ã两个æ®é页é¢ä¹é´ç跳转ç¨uni.navgateTo()ï¼urlå¯æºå¸¦åæ°ãæ®é页é¢è·³tabbaré ç½®è¿ç页é¢éè¦uni.switchTab()ï¼urlä¸è½ä¼ å¼ã
4ãuniappå¯ä»¥éåºå¤ä¸ªå¹³å°å¼åï¼ä½ ä¼åç°å¨HBuilderXä¸çå ç½®æµè§å¨ä¸è°æ¥å£ï¼æ²¡é®é¢ï¼å¨å°ç¨åºä¸ï¼ä¹æ²¡é®é¢ï¼è¿æ¥ææºèè°ä¹æ²¡é®é¢ï¼å½åå°è®¾ç½®å 许跨åä¹åï¼å端h5éè¦è¿è¡è®¾ç½®åå代çæè½è§£å³è¿ä¸ªé®é¢ã
5ãhbuilderè¿è¡uniapp没ååºï¼æ£æ¥å¾®ä¿¡å¼åè å·¥å ·ä¸æ¯å¦å¼å¯æå¡ç«¯å£å·ã
uniappä¹h5åå代ç设置踩å,解å³è·¨åé®é¢uniappå¯ä»¥éåºå¤ä¸ªå¹³å°å¼åï¼ä½ ä¼åç°å¨HBuilderXä¸çå ç½®æµè§å¨ä¸è°æ¥å£ï¼æ²¡é®é¢ï¼å¨å°ç¨åºä¸ï¼ä¹æ²¡é®é¢ï¼è¿æ¥ææºèè°ä¹æ²¡é®é¢ï¼å½åå°è®¾ç½®å 许跨åä¹åï¼å端h5éè¦è¿è¡è®¾ç½®åå代çæè½è§£å³è¿ä¸ªé®é¢ã
è¿ä¸ªåå ææªæ¾å°å¨uniappçH5çæ¬ï¼æ¥å ¥è ¾è®¯äºæ»å¨éªè¯ï¼ç¤ºä¾çç¹å»æ»å¨éªè¯å ç´ æ¯éè¿domæä½çï¼ä½æ¯æ æï¼å¯è½è·uniAPPä¸æ¯ædomæä½æå ³ç³»ï¼éç¨å®å¶æ¥å ¥æ¹æ³ä¸ï¼æå¨è°ç¨ã
第ä¸ç§è§£å³æ¹æ³ï¼ç´æ¥å建ä¸ä¸ªvue.config.jsæ件ï¼å¹¶å¨éé¢é ç½®devServerï¼ç´æ¥ä¸ä»£ç ï¼éå¯è·é¡¹ç®ã第äºç§è§£å³æ¹æ³ï¼å¨srcç®å½ä¸æ¾å°mainfest.jsonæ件ï¼ä¿®æ¹è¯¥æ件ï¼ç¹å»âæºç è§å¾âçå°h5ï¼æ¥å£è°ç¨ã
webpackçæ¬ä¸å ¼å®¹uniapp1ãå¦æä½ ä½¿ç¨å ¶ä»ideå¼åuni-appï¼ä¼ç»å¸¸å 为æ¼éåè¯èè¿è¡å¤±è´¥ï¼å 为ç»è¿webpackç¼è¯ä¸éï¼å¾å¤é误ååºçä¸å¤ç´è§ï¼æéæ¶é´å¾é¿ï¼ä¸å¦ä»å¼å§å°±ä¾èµæè¯å¥½æ示çHBuilderXï¼é¿å æ²éåè¯ã
2ãæ¥éª¤veu.config.jsä¸æ¨èå®è£ copy-webpack-plugin0.0çæ¬ã
3ãnpminstallå®è£ uniappç¨ä¸äºé£æ¯å 为ä¸å ¼å®¹ï¼æ以è¿ä¸ªæ¶åå°±éè¦ä½¿ç¨Windowsçç³»ç»ï¼å¦æ没æ温度æ¯çç³»ç»ï¼å®è¿ä¸ªæ¯æ æ³å ¼å®¹çï¼å 为ä»ä»¬ä¸¤ä¸ªé½æ¯å±äºææ°çä¸ä¸ªææ¡£å软件ã
4ãå 为uniappå¼åiosä¸å ¼å®¹ï¼æ以ä¸å¯ç¨ãä¸å¾ä¸è¯´ï¼ä»»ä½ä¸ä¸ªå¼åè éå°è¹æææºé½ä¼æå¤æå°éè¦åéé ã
5ãåå¨ç©ºé´ä¸è¶³ï¼è¯·å é¤åå¨ç©ºé´å ä¸å¿ è¦çæ件ï¼é¢çåºæ´å¤çåå¨ç©ºé´ï¼ç³»ç»ä¸å·²åå¨è¯¥ç¨åºï¼è¯·å¸è½½åéæ°å®è£ ï¼è½¯ä»¶çæ¬ä¸ç³»ç»ä¸å ¼å®¹ï¼è¯¦æ 请å¨è¯¢ç¬¬ä¸æ¹è½¯ä»¶å®¢æã
uniappç¨ä»ä¹è½¯ä»¶å¼ååé?1ãuni-appå¯ä»¥ä½¿ç¨HBuilderXçå¼åå·¥å ·è¿è¡å¼åï¼å¯ä»¥å¨å®åãIOSãH5çå¤ç«¯æ建appåºç¨ï¼èAndroidStudioå主è¦ç¨æ¥æ建å®åAppçNativeç¯å¢ï¼ä»¥å对åºçå®è£ å çã
2ãuni-appæ¯ä¸ä¸ªä½¿ç¨Vue.jså¼åææå端åºç¨çæ¡æ¶ï¼å¼åè ç¼åä¸å¥ä»£ç ï¼å¯åå¸å°iOSãAndroidãH以ååç§å°ç¨åºï¼å¾®ä¿¡/æ¯ä»å®/ç¾åº¦/头æ¡/QQ/ééçå¤ä¸ªå¹³å°ãå°ç»ï¼ç¬¬äºç±»å¼åèµ·æ¥æ´æ¾æçï¼è约å¾å¤æ¶é´ææ¬ã
3ãphpãuni-appæ¯ä¸ä¸ªä½¿ç¨Vue.jså¼åææå端åºç¨çæ¡æ¶ï¼å¼åè ç¼åä¸å¥ä»£ç ï¼uniappé åphpå端好ï¼ä¸»è¦æ¯phpçå¼åå¨æè¦æ¯javaä½å¾å¤ï¼èä¸ææ¯é¨æ§ä¹è¦ä½å¾å¤ã
HBuilderXæ¯ä»ä¹?1ãHBuilderæ¯DCloudï¼æ°å天å ï¼æ¨åºçä¸æ¬¾æ¯æHTML5çWebå¼åIDEãHBuilderçç¼åç¨å°äºJavaãCãWebåRubyãHBuilderæ¬èº«ä¸»ä½æ¯ç±Javaç¼åï¼å®åºäºEclipseï¼æä»¥é¡ºå ¶èªç¶å°å ¼å®¹äºEclipseçæ件ã
2ãHBuilderXç®ç§°HXï¼HBuilderï¼Hæ¯HTMLç缩åï¼Builderæ¯å»ºè®¾è ãæ¯ä¸ºå端å¼åè æå¡çéç¨IDEï¼æè 称为ç¼è¾å¨ãä¸vscodeãsublimeãwebstorm类似ã
3ãç½ç»æé®é¢ãHBuilderXç®ç§°HXï¼HBuilderï¼Hæ¯HTMLç缩åï¼Builderæ¯å»ºè®¾è ã
4ãHBuilderãHBuilderXç¼è¾å¨æ¯DCloudå ¨æ°æ¨åºçä¸æ¬¾HTML5çWebå¼åå·¥å ·ï¼è½¯ä»¶ä½ç§¯å°ï¼å¯å¨å¿«ã