2016-03-22 6 views
-2

Ich mache ein Programm, das 10 Passwörter aus einem Textdokument und prüft die Stärke auf jedem Passwort auf der Grundlage eines bestimmten Kriterien (wie lange das Passwort, Verwendung von Groß- und Kleinbuchstaben, Zahlen und andere Zeichen)Ich mache ein Passwort Stärke Tester und derzeit stecken in Python

mein Problem ist, ich jedes einzelne Passwort nicht trennen kann und die Punkte hinzufügen, die jeweils Kriterien .. Vielen dank im Voraus für Ihre Hilfe zugeordnet

diese sind die Kennwörter, die ich benutze ECOO() 123abc9876, 123412345, ecoo2012, Bailey1234, Programmierer, ContestT1mE,! 23 $ 5^7 *(), (99876Ghg), StarWars, Samsung

from string import ascii_lowercase 
from collections import Counter 

with open("passwords.txt") as f: 
    print(Counter(letter for line in f 
        for letter in line.lower() 
        if letter in ascii_lowercase)) 
+0

Zeigen Sie uns, und auf die Frage, um den Inhalt von 'Passwörter hinzufügen .txt' bitte. –

+1

Es scheint ziemlich klar, dass Sie die Grundlagen sowohl von Python als auch der vorliegenden Aufgabe vermissen. Dies ist weit über den Rahmen einer StackOverflow-Frage hinaus; Sie müssen eigentlich mit dem Programmieren beginnen, wenn Sie erwarten, dieses Problem zu lösen und die Art und Weise zu verstehen, wie solche Probleme angegangen werden. – kungphu

Antwort

1

Sie haben gesagt, dass wir Ihre Kriterien für die Stärke eines bestimmten Passwort Berechnung, aber diese grundlegende Logik sollte man durchkommen:

import string 

def score(pw): 
    length = len(pw) 

    uppers = set(ascii_uppercase) 
    upper = len([i for i in pw if i in uppers]) 

    lowers = set(ascii_lowercase) 
    lower = len([i for i in pw if i in lowers]) 

    # and any other criteria 

    return length + upper + lower # and anything else 


def main(infilepath): 
    with open(infilepath) as infile: 
     for line in infile: 
      pw = line.strip() 
      print("The strength of", pw, "is", score(pw)) 
+0

das sind die Passwörter, die ich ECOO bin mit() 123abc9876, 123.412.345, ecoo2012, Bailey1234, Programmierer, ContestT1mE, ! $ 23 5^7 *(), (99876Ghg), Starwars, Samsung –