最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)圖片滑動(dòng)式驗(yàn)證識(shí)別方法

 更新時(shí)間:2017年11月09日 15:59:46   作者:一點(diǎn)一滴的Beer  
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。這篇文章主要介紹了Python實(shí)現(xiàn)圖片滑動(dòng)式驗(yàn)證識(shí)別方法,需要的朋友可以參考下

1 abstract

驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn)。目前最常見的一種形式就是“滑動(dòng)拼圖式”

2 內(nèi)容概述

關(guān)于滑動(dòng)式驗(yàn)證,最早由國(guó)內(nèi)某網(wǎng)絡(luò)安全公司首次提出的行為式驗(yàn)證,以滑動(dòng)拼圖解鎖的方式呈現(xiàn)在世人面前。然后大概過(guò)了好幾年之后,各種各樣的滑動(dòng)式驗(yàn)證產(chǎn)品都出來(lái)了,那么這些看似一樣的產(chǎn)品,它們的安全性到底如何呢?

本文特意挑選出了一些后來(lái)者的小廠商的滑動(dòng)式驗(yàn)證來(lái)做下實(shí)驗(yàn),僅從第一步的圖像學(xué)上分析一下安全性。因?yàn)槲业闹骷夹g(shù)路線是圖像學(xué),關(guān)于前端的js并不熟悉,所以就只在圖像學(xué)上點(diǎn)到即止即可。僅供會(huì)一些自動(dòng)化技術(shù)的同學(xué)提供一些知識(shí)補(bǔ)充吧。

由于研究的實(shí)驗(yàn)對(duì)象實(shí)在是太簡(jiǎn)單,所以本文涉及的一些圖像學(xué)的知識(shí)也不難,基本上python的初級(jí)選手就可以跑通本程序。僅供大家學(xué)習(xí)學(xué)習(xí)。

3 研究對(duì)象

某小站點(diǎn)上由小廠商提供的“滑動(dòng)式驗(yàn)證”:

使用python寫一個(gè)簡(jiǎn)單的爬蟲自動(dòng)化腳本,將此網(wǎng)站上的驗(yàn)證碼資源多請(qǐng)求幾次,并保存到本地,觀查圖片特點(diǎn)。

一般情況下,這一步是必須的,多下載一些圖片,很多規(guī)律是可以一眼看出的。比如,從公開的頁(yè)面中,連續(xù)請(qǐng)求此驗(yàn)證的資源 100次,下載100張圖片后。

一眼看上去,此驗(yàn)證的圖片素材都只有一種模式,那么就放心了,因?yàn)檫@個(gè)問(wèn)題就比較單一,而不是多模式下你必須要解決多個(gè)問(wèn)題。

4 定性分析

將這種單一模式的圖片篩選一張出來(lái),如下:

發(fā)現(xiàn)如下特點(diǎn):

和前端展示相關(guān)的圖片有:方塊位置提示圖A,小方塊B,完整背景圖C。

A圖完全是由B和C合成

顯然,設(shè)計(jì)這個(gè)驗(yàn)證圖片的人沒(méi)啥安全方面的經(jīng)驗(yàn),有如下兩個(gè)產(chǎn)品細(xì)節(jié)沒(méi)有注意:

對(duì)圖片沒(méi)做任何的特殊處理

對(duì)外公開提供了過(guò)多信息

于是使得識(shí)別此圖片的位置變得極其簡(jiǎn)單。

5 定量分析

在前面一小節(jié)中,我們只是直觀的看到了這些圖片的一些特別,但是要解答這個(gè)題目,還需要進(jìn)行量化,量化后才能程序化,程序化后才能全自動(dòng)化。

使用matplotlib工具打開此圖片。量化得到如下參數(shù):

圖片整體規(guī)格:w:240,h:450

由上到下分為三部分,每部分高度為150

6 求解圖片

很明顯,只要將第一張圖和第三張圖相應(yīng)的像素相減,神奇的事情就發(fā)生了:

“左上” 減去 “右下” 就得到 “左下”的結(jié)果。

這個(gè)時(shí)候,對(duì)x方向的R通道的像素點(diǎn)進(jìn)行累加統(tǒng)計(jì)。

得到如下的統(tǒng)計(jì)圖:

然后對(duì)這個(gè)曲線求一階導(dǎo)數(shù)或者只要發(fā)現(xiàn)有個(gè)突變值超過(guò)最大像素值的某百分比時(shí),即可得到最左邊的那個(gè)y方向突變點(diǎn)的位置。

到此為止,此圖片的位置已經(jīng)成功解出。

下面是相應(yīng)的python代碼:

import numpy as np
...
def get_boundary(mask, axis, ratio=0.6):
 """
 對(duì)灰度圖的某個(gè)channel做像素統(tǒng)計(jì)
 """
 sum_along_axis = np.sum(mask, axis=axis)
 max_value = np.max(sum_along_axis)
 bound_value = max_value * ratio
 bvalue = (sum_along_axis >= bound_value).astype('int8')
 return np.where(bvalue != 0)[0][0]
def get_predict_ans(img):
 """
 根據(jù)分類出來(lái)的圖像,找到相應(yīng)的圖像位置
 傳入二進(jìn)制的圖片,返回答案
 :param img:
 :return:
 """
 nd_img = np.array(img)
 w_pos = get_boundary(nd_img, 0) # 根據(jù)分布圖找到邊界位置
 return w_pos

總結(jié)

以上所述是小編給大家介紹的Python實(shí)現(xiàn)圖片滑動(dòng)式驗(yàn)證識(shí)別方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • python日志logging模塊使用方法分析

    python日志logging模塊使用方法分析

    這篇文章主要介紹了python日志logging模塊使用方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python日志logging模塊相關(guān)API函數(shù)與應(yīng)用技巧,需要的朋友可以參考下
    2019-05-05
  • 在python tkinter界面中添加按鈕的實(shí)例

    在python tkinter界面中添加按鈕的實(shí)例

    今天小編就為大家分享一篇在python tkinter界面中添加按鈕的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 基于Python打造賬號(hào)共享瀏覽器功能

    基于Python打造賬號(hào)共享瀏覽器功能

    這篇文章主要介紹了基于Python打造賬號(hào)共享瀏覽器功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • opencv python 傅里葉變換的使用

    opencv python 傅里葉變換的使用

    這篇文章主要介紹了opencv python 傅里葉變換的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 定制FileField中的上傳文件名稱實(shí)例

    定制FileField中的上傳文件名稱實(shí)例

    下面小編就為大家?guī)?lái)一篇定制FileField中的上傳文件名稱實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼

    python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼

    今天小編就為大家分享一篇python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python -m參數(shù)原理及使用方法解析

    Python -m參數(shù)原理及使用方法解析

    這篇文章主要介紹了Python -m參數(shù)原理及使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 一文詳細(xì)介紹Python兩條斜杠 // 的作用和用法

    一文詳細(xì)介紹Python兩條斜杠 // 的作用和用法

    Python中的兩條斜杠//是整數(shù)除法運(yùn)算符,返回商的整數(shù)部分,丟棄小數(shù)部分,它與取模運(yùn)算符%經(jīng)常一起使用,幫助理解除法的整數(shù)和余數(shù),與普通除法運(yùn)算符/不同,//總是返回整數(shù)結(jié)果,在處理負(fù)數(shù)時(shí),//會(huì)向絕對(duì)值更大的方向取整,本文就來(lái)介紹一下
    2024-11-11
  • Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解

    Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解

    這篇文章主要為大家介紹了Python腳本開發(fā)中的命令行參數(shù)及傳參示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python深入學(xué)習(xí)之閉包

    Python深入學(xué)習(xí)之閉包

    這篇文章主要介紹了Python深入學(xué)習(xí)之閉包,閉包(closure)是函數(shù)式編程的重要的語(yǔ)法結(jié)構(gòu),Python也支持這一特性,本文就這一特性做了講解,需要的朋友可以參考下
    2014-08-08

最新評(píng)論

龙江县| 镶黄旗| 宜宾市| 四川省| 新蔡县| 洛浦县| 云霄县| 弥勒县| 崇信县| 治多县| 黄骅市| 湟中县| 腾冲县| 拜城县| 芜湖市| 化德县| 宜章县| 建德市| 天津市| 三亚市| 乐昌市| 海林市| 喀喇| 龙门县| 庆城县| 巍山| 彭泽县| 墨玉县| 北票市| 贵定县| 涟水县| 夏河县| 巫溪县| 喀什市| 金昌市| 团风县| 库尔勒市| 蓬溪县| 沁源县| 当雄县| 本溪市|