城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

行为验证码验证类型的讲解

5月25日 蚀肉堂投稿
  前言
  最近在开发行为验证码,经常触及到关于验证类型的相关内容。但使用起来不太熟练,闲暇之余,总结一下我对行为验证码验证类型的理解。
  验证类型概述
  滑动拼图
  创新行为式验证,轻松一滑完成拼图,体验极佳,秒速通过验证。简洁高效,在保障用户极致体验的同时,抵御机器风险。适用于追求用户体验的场景。生成背景图basemap1Image。open(bg)。convert(RGBA)背景图ifbasemap1。size!size:需要裁切或拉伸basemap1Graphics。crop(basemap1,size〔0〕,size〔1〕)puzzle1Image。open(urlabsolute(img))。convert(RGBA)方块图,蒙板旋转角度ifrotate2:anglerandint(0,360)elifrotate1:anglechoice(〔0,90,180,270〕)else:angle0angle45ifangle:puzzle1puzzle1。rotate(angle,resampleImage。Resampling。BILINEAR)puzzle1。putalpha(ImageEnhance。Brightness(puzzle1。split()〔3〕)。enhance(alpha))设置透明度,01之间产生随机位置imgsizepuzzle1。size滑动图片尺寸spacing0滑动图片在底图位置四周间距,暂时使用0,小图片中的图案本身有20px边距随机位置xrandint(imgsize〔0〕spacing,size〔0〕imgsize〔0〕spacing)yrandint(spacing,size〔1〕imgsize〔1〕spacing)basemap1。paste(puzzle1,(x,y),puzzle1)拷贝方块滑动图basemap2Image。open(urlabsolute(bg))。convert(RGBA)basemap2Image。open(bg)。convert(RGBA)ifbasemap2。size!size:需要裁切或拉伸basemap2Graphics。crop(basemap2,size〔0〕,size〔1〕)puzzle2Image。open(urlabsolute(img))。convert(RGBA)ifangle:puzzle2puzzle2。rotate(angle,resampleImage。Resampling。BILINEAR)旋转basemap2basemap2。crop((x,y,ximgsize〔0〕,yimgsize〔1〕))裁切puzzle2。paste(basemap2,(0,0),puzzle2)替换成长条形滑动块stripImage。new(RGBA,(imgsize〔0〕,size〔1〕),(255,255,255,0))strip。paste(puzzle2,(0,y),puzzle2)拷贝
  文字点选
  顺序点击图中文字,全新行为验证,安全性极高,保障验证安全。提高机器识别难度的同时,保证真实用户可读。适用于安全要求较高的业务场景。defrandomcharacter(self,lengthNone,type〔0,1,2,3〕,repeatFalse):生成随机字符:paramlength:生成的字符长度,几个字符:paramtype:〔0〕数字,〔1〕大写字母,〔2〕小写字母,〔3〕特殊字符:paramrepeat:是否允许重复字符:return〔(A,1,大写字母),(8,0,数字),(a,2,小写字母),(,3,高跟鞋)。。。〕iflengthisNone:lengthself。strcountlength10type〔0〕string。join(dict(〔(key,{0:2345678923456789,1:ABCDEFGHJKLMNQRTY,2:abcdefghijkmnqrty,3:,}〔key〕)forkeyintype〕)。values())r〔〕foriinrange(length):ifrepeat:允许重复schoice(string)tInference。chartype(s)r。append((s,t〔0〕,t〔1〕))else:anti0防止死循环,尝试一定次数后允许字符重复whileTrue:anti1schoice(string)tInference。chartype(s)st。join(〔it〔0〕foritinr〕)ifsnotinstoranti30:r。append((s,t〔0〕,t〔1〕))break替换n个字母为图形字符if3intype:indexsample(〔iforiinrange(length)〕,randint(0,length))随机一组索引值:〔0,3,1〕iconcharsample(self。iconstr,len(index))随机取出n组特殊字符x0foriinindex:rInference。charreplace(r,i,iconchar〔x〕〔1〕)r〔i〕(iconchar〔x〕〔1〕,3,iconchar〔x〕〔2〕)x1returnr
  语序点选
  根据中文语义,按顺序依次点击图中文字,语义理解能力结合行为轨迹。适用于安全要求较高的业务场景。
  下面举例说说的干扰点与干扰线的制作:噪线foriinrange(linecount):x1randint(0,size〔0〕)x2randint(0,size〔0〕)y1randint(0,size〔1〕)y2randint(0,size〔1〕)draw。line((x1,y1,x2,y2),fillWord。getrandomcolor())噪点foriinrange(pointcount):draw。point(〔randint(0,size〔0〕),randint(0,size〔1〕)〕,fillWord。getrandomcolor())xrandint(0,size〔0〕)yrandint(0,size〔1〕)draw。arc((x,y,x4,y4),0,90,fillWord。getrandomcolor())
  字体识别
  点击与其它字符不同字体的文字,用户仅需一次点击,即可进行安全验证。适用于安全要求超高的业务场景。字体识别iftypein(10,11,12):789生成成语固定字符strcount1strinternumeric(strinter,2,20)干扰字符不能少于2vfontsample(ttf,2)随机选出两种字体string〔〕foriinrange(strcountstrinter):iftypein(10,11,12):字体识别,只使用两种字体fontfilevfont〔0〕ifi0elsevfont〔1〕else:随机字体fontfilechoice(ttf)fontImageFont。truetype(urlabsolute(fontfile),sizefontsize)成语使用固定字符,前n个字符使用成语字符randomcharidiom〔i:i1〕ifidiomelse随机字符串及补充固定字符时追加干扰字符ifrandomchar:headrandint(0xb0,0xf7)bodyrandint(0xa1,0xfe)randomcharbytes。fromhex(f{head:x}{body:x})。decode(gb18030)print(randomchar,fontfile)随机位置anti0防止字体设置过大或者图片设置过小,导致死循环,尝试一定次数后允许字符重叠whileTrue:防止文字重叠anti1xrandint(0,size〔0〕fontsize)yrandint(0,size〔1〕fontsize)findTrueforsinstring:ifabs(xs〔1〕)fontsizeandabs(ys〔2〕)fontsize:findFalsebreakiffindornotstringoranti20:break创建文字图片,可旋转strbgImage。new(RGBA,(fontsize,fontsize),(255,255,255,0))文字用空白图层strdrawImageDraw。Draw(strbg)strdraw。text((0,0),randomchar,Word。getrandomcolor(),fontfont)添加文字anglerandint(75,75)ifrotateelse0是否随机角度strbgstrbg。rotate(angle,resampleImage。Resampling。BILINEAR,expand0)随机旋转basemap。paste(strbg,(x,y),strbg)图片与文字合并保存随机字符及位置string。append(〔randomchar,x,y,angle〕)字符、x、y、角度(正负转换,转用CSS顺时针旋转形式)
  空间推理
  根据提示,点击对应的元素。逻辑解题能力结合图形符号等元素识别能力。适用于安全要求超高的业务场景。
  下面举例几种验证方式:defsendcolor2differ(self):请点击一个颜色不一样的字符colorself。colorname(2)获取2组带中文名称的颜色〔(蓝色,0000FF),〕data〔〕foriinrange(self。strcount):data在图片上生成的数据data。append({str:self。string〔i〕〔0〕,字符内容X:self。coord〔i〕〔0〕,x位置Y:self。coord〔i〕〔1〕,y位置color:color〔0〕〔1〕ifi0elsecolor〔1〕〔1〕,angle:self。angle〔i〕,icon:Trueifself。string〔i〕〔1〕3elseFalse,是否为图形字符})hint操作说明文字hintf请点击一个i颜色不一样i的i{self。string〔0〕〔2〕}istr〔(data〔0〕〔str〕,data〔0〕〔X〕,data〔0〕〔Y〕,data〔0〕〔angle〕),〕return{data:data,str:str,hint:hint}defsendcolor2capital(self):请点击蓝色字母对应的大写direcchoice(〔1,2〕)随机一种方式,大写to小写小写to大写colorself。colorname()获取n组带中文名称的颜色〔(蓝色,0000FF),〕self。stringself。randomcharacter(type〔direc〕)data〔〕foriinrange(self。strcount):data在图片上生成的数据data。append({str:self。string〔i〕〔0〕,字符内容X:self。coord〔i〕〔0〕,x位置Y:self。coord〔i〕〔1〕,y位置color:color〔i〕〔1〕,angle:self。angle〔i〕,icon:Trueifself。string〔i〕〔1〕3elseFalse,是否为图形字符})data〔0〕〔str〕data〔1〕〔str〕。swapcase()hint操作说明文字hintf请点击i{color〔0〕〔0〕}字母i对应的i{大写ifdirec1else小写}istr〔(data〔1〕〔str〕,data〔1〕〔X〕,data〔1〕〔Y〕,data〔1〕〔angle〕),〕return{data:data,str:str,hint:hint}总结
  以上便是本文的全部内容,相关代码我已经放上Github了,https:github。comKgCaptcha,这里我做了一个示例:https:www。kgcaptcha。comdemo。
投诉 评论 转载

行为验证码验证类型的讲解前言最近在开发行为验证码,经常触及到关于验证类型的相关内容。但使用起来不太熟练,闲暇之余,总结一下我对行为验证码验证类型的理解。验证类型概述滑动拼图创新……沧州市相对集中行政许可权改革的实践探索近年来,全国开启了相对集中行政许可权改革探索,河北省沧州市探索的组建行政审批局和互联网政务服务两种改革模式同步推进的做法触动了鲶鱼效应,激活了改革动力。沧州市相对集中行政许可权……SpaceX任务可能预示着低成本,可靠的太空运输时代华盛顿五角大楼对使用太空运载火箭在全球范围内快速运送货物和人员的兴趣起源于1950年代的太空竞赛,尽管技术、可行性和成本限制几十年来一直使这一概念遥不可及。计划于三月份发……网站权重有用吗网站如何获得高权重什么叫权重?很多外行并不清楚网站权重是一个什么概念,那么这里就简单的说一下,网站权重是指,通过第三方工具统计并对网站做出的指标评估,网站的权重值越高,也就是说网站所获取的自然流……最新韩式中分长发烫发时尚发型展现不一样的甜美一款纯黑色中分卷发,黑色是最纯真的颜色,没有任何的杂质,很自然的感觉,是沉稳的代表色,自然披在肩上的头发,加上一顶帽子显出了几分俏皮感。一款清新唯美的长卷发发型,具有随性……生的造句用生的造句大全(181)烦恼像一杯浓浓的咖啡,像一条永不停息的小河;像一段人生的小插曲。烦恼就像一块大大的重重的石头压在我心里,难道烦恼是人生的必修课?(182)俯瞰南完寺全景,庙廓绿……产业交集越来越多,未来市场规模达6000亿,3D打印成新风口作为近年来全球最火爆的前沿技术话题之一,3D打印从概念阶段向市场化应用阶段逐步迈入,与众多产业的交集越来越多,孕育出庞大的市场。新年之初,又一围绕3D打印的重磅新闻登上热搜,美……广州动物园大熊猫秀爬树技艺,网友在一声声靓仔中迷失了自我近日,在广州动物园,一只大熊猫在众多游客的欢呼声中大秀爬树技艺,身手敏捷。网友:在一声声靓仔中迷失了自我。网友评论延伸阅读大熊猫花花突然成网红,有人为了它爬树……谢谢你一路相伴无论路再长、再远,你都会在我身边与我相伴;远方的路再昏再暗有你为我照亮;每当我迷茫时你给我力量,让我勇敢地再次去闯荡,这一路来,有你相伴我左右,真好。陪伴,对一个人来说是……自流造句用自流造句大全【自流zli】:1。自然地流动。2。比喻自行发展。3。自求流放。1。花自飘零水自流,一种相思,两处闲愁。李清照2。花自飘零水自流,一种相思,两处闲愁,此情无计可消除……销量品牌价值并重,百年林肯开启二次提速2022年对于林肯来说并不平凡。一方面,销量纪录再创新高,突破90,000大关,实现最高单月销量纪录,超过9,000台;冒险家单车单月销量纪录创新高,突破5,000台,成……苦丁茶喝法需要注意什么对于苦丁茶,相信很多女性朋友是比较熟悉的,因为在养生馆中我们经常听养生医师介绍,它是具有减肥效果的,其实按照中医理论来说,苦丁茶的减肥效果并不是十分的明显,它主要的作用还是去火……
浅议汉语言文学专业教学自救的关键冷静求求了不要在作死边缘试探蓝环章鱼道路运输管理述纪述廉报告你能抓住升迁运吗海港新援卡隆出场机会不是我能决定的,我已经100准备好了龙战造句用龙战造句大全2022值得入手的迪奥包包大合集阿贝许愿天雨造句用天雨造句大全烙饼技巧一杯面粉一碗水,最简单的食材,做出软乎又筋道的饼怎么说孩子才会听记好这10句话

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找