最近在做網路資訊保安攻防學習平台的題目,發現有些題居然需要用到驗證碼識別,這玩意以前都覺得是高大上的東西,一直沒有去研究,這次花了點時間研究了一下,當然只是一些基礎的東西,高深的我也不會,分享一下給大家吧。
這次驗證碼識別,我使用的python來實現的,發現python果然是強大無比,但是在驗證碼識別庫的安裝上面有點小問題。
關於python驗證碼識別庫,網上主要介紹的為pytesser及pytesseract,其實pytesser的安裝有一點點麻煩,所以這裡我不考慮,直接使用後一種庫。
要安裝pytesseract庫,必須先安裝其依賴的pil及tesseract-ocr,其中pil為影象處理庫,而後面的tesseract-ocr則為google的ocr識別引擎。
pil-1.1.7.win-amd64-py2.7.exe
pil-1.1.7.win32-py2.7.exe
或者直接使用pillow來代替,使用方法基本沒有什麼區別。
tesseract-ocr-setup-3.02.02.exe
3、pytesseract安裝
直接使用pip install pytesseract安裝即可,或者使用easy_install pytesseract
01
#!/usr/bin/env python
02
# -*- coding: gbk -*-
03
# -*- coding: utf_8 -*-
04
# date: 2014/11/27
05
# created by 獨自等待
06
# 部落格
07
try
:
08
import
pytesseract
09
from
pil
import
image
10
except
importerror:
11
print
'模組匯入錯誤,請使用pip安裝,pytesseract依賴以下庫:'
12
print
''
13
print
''
14
raise
systemexit
15
16
image
=
image.
open
(
'vcode.png'
)
17
vcode
=
pytesseract.image_to_string(image)
18
print
vcode
識別率還挺高的,當然這也和驗證碼本身有關,因為這個驗證碼設計的比較容易識別。
python識別驗證碼,就是這麼簡單,大家還不快來試一試?
關於php的驗證碼識別,這個我沒有深入研究,但是用python實現完了以後就明白了,其實只要借助ocr識別庫就可以了,直接貼上之前指令碼關第9關的**。
security-scripts-game.html
01
<?php
02
/**
03
* created by 獨自等待
04
* date: 2014/11/20
05
* time: 9:27
06
* name: ocr.php
07
* 獨自等待部落格:
08
*/
09
error_reporting
(7);
10
if
(!
extension_loaded
(
'curl'
))
exit
(
'請開啟curl擴充套件,謝謝!'
);
11
crack_key();
12
13
function
crack_key()
14
else
32
}
33
}
34
35
36
function
mkvcode()
37
49
if
(
strlen
(
$vcode
) == 4)
else
54
}
55
56
//資料報傳送函式
57
function
send_pack(
$method
,
$url
,
$post_data
=
array
())
58
69
$data
= curl_exec(
$curl
);
70
curl_close(
$curl
);
71
return
$data
;
72
}
驗證碼 簡單驗證碼識別
這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 興之所至之所以說簡單,我覺得是這樣的 抽了五張驗證碼扔進ps,50 透明度,長這樣 只有數字為內容 每張圖的數字都在固定位置 沒有太大的干擾因素 數字字型,形態完...
驗證碼一(驗證碼生成)
根據手機好查詢密碼 return type description code for i 0 i 6 i 4位驗證碼也可以用rand 1000,9999 直接生成 將生成的驗證碼寫入session,備驗證時用 session start session verify num code 建立,定義顏色...
12306驗證碼 驗證碼的架構
最近和眾屌絲一樣,在12306上面刷著春節回家的票。與她大戰無數個回合之後,終於搶到了一張回家的高鐵票,不斷感慨最近人品還不錯。當前,在使用12306的過程中,充滿很多的心酸,念叨了鐵道部的親人很多次 罪過 其中最讓人糾結的一項即是 驗證碼。12306採用驗證碼,無疑是一種很不錯的措施,可以在一定程...