
Python實現(xiàn)圖片滑動式驗證識別方法
1 abstract
驗證碼作為一種自然人的機器人的判別工具,被廣泛的用于各種防止程序做自動化的場景中。傳統(tǒng)的字符型驗證安全性已經(jīng)名存實亡的情況下,各種新型的驗證碼如雨后春筍般涌現(xiàn)。目前最常見的一種形式就是“滑動拼圖式”
2 內(nèi)容概述
關(guān)于滑動式驗證,最早由國內(nèi)某網(wǎng)絡(luò)安全公司首次提出的行為式驗證,以滑動拼圖解鎖的方式呈現(xiàn)在世人面前。然后大概過了好幾年之后,各種各樣的滑動式驗證產(chǎn)品都出來了,那么這些看似一樣的產(chǎn)品,它們的安全性到底如何呢?
本文特意挑選出了一些后來者的小廠商的滑動式驗證來做下實驗,僅從第一步的圖像學(xué)上分析一下安全性。因為我的主技術(shù)路線是圖像學(xué),關(guān)于前端的js并不熟悉,所以就只在圖像學(xué)上點到即止即可。僅供會一些自動化技術(shù)的同學(xué)提供一些知識補充吧。
由于研究的實驗對象實在是太簡單,所以本文涉及的一些圖像學(xué)的知識也不難,基本上python的初級選手就可以跑通本程序。僅供大家學(xué)習(xí)學(xué)習(xí)。
3 研究對象
某小站點上由小廠商提供的“滑動式驗證”:
使用python寫一個簡單的爬蟲自動化腳本,將此網(wǎng)站上的驗證碼資源多請求幾次,并保存到本地,觀查圖片特點。
一般情況下,這一步是必須的,多下載一些圖片,很多規(guī)律是可以一眼看出的。比如,從公開的頁面中,連續(xù)請求此驗證的資源 100次,下載100張圖片后。
一眼看上去,此驗證的圖片素材都只有一種模式,那么就放心了,因為這個問題就比較單一,而不是多模式下你必須要解決多個問題。
4 定性分析
將這種單一模式的圖片篩選一張出來,如下:
發(fā)現(xiàn)如下特點:
和前端展示相關(guān)的圖片有:方塊位置提示圖A,小方塊B,完整背景圖C。
A圖完全是由B和C合成
顯然,設(shè)計這個驗證圖片的人沒啥安全方面的經(jīng)驗,有如下兩個產(chǎn)品細節(jié)沒有注意:
對圖片沒做任何的特殊處理
對外公開提供了過多信息
于是使得識別此圖片的位置變得極其簡單。
5 定量分析
在前面一小節(jié)中,我們只是直觀的看到了這些圖片的一些特別,但是要解答這個題目,還需要進行量化,量化后才能程序化,程序化后才能全自動化。
使用matplotlib工具打開此圖片。量化得到如下參數(shù):
圖片整體規(guī)格:w:240,h:450
由上到下分為三部分,每部分高度為150
6 求解圖片
很明顯,只要將第一張圖和第三張圖相應(yīng)的像素相減,神奇的事情就發(fā)生了:
“左上” 減去 “右下” 就得到 “左下”的結(jié)果。
這個時候,對x方向的R通道的像素點進行累加統(tǒng)計。
得到如下的統(tǒng)計圖:
然后對這個曲線求一階導(dǎo)數(shù)或者只要發(fā)現(xiàn)有個突變值超過最大像素值的某百分比時,即可得到最左邊的那個y方向突變點的位置。
到此為止,此圖片的位置已經(jīng)成功解出。
下面是相應(yīng)的python代碼:
import numpy as np
...
def get_boundary(mask, axis, ratio=0.6):
"""
對灰度圖的某個channel做像素統(tǒng)計
"""
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ù)分類出來的圖像,找到相應(yīng)的圖像位置
傳入二進制的圖片,返回答案
:param img:
:return:
"""
nd_img = np.array(img)
w_pos = get_boundary(nd_img, 0) # 根據(jù)分布圖找到邊界位置
return w_pos
總結(jié)
以上所述是小編給大家介紹的Python實現(xiàn)圖片滑動式驗證識別方法,希望對大家有所幫助
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03