summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
2258ef0)
exrex uses generators, so this saves memory as we don't have to store
the whole list of results anymore.
While at it refactor things a little bit so to pass the number of
elements to the crackpop() function too.
__author_info = "Antonio Ospite"
__author_info = "Antonio Ospite"
+# returns a tuple: (num_passwords, passwords)
+# where passwords is an iterable type
def generate_passwords(password_pattern, dry_run=False):
def generate_passwords(password_pattern, dry_run=False):
- passwords = list(exrex.generate(password_pattern))
+ num_passwords = exrex.count(password_pattern)
+ passwords = exrex.generate(password_pattern)
- print "Generated %d passwords." % len(passwords)
+ print "Generated %d passwords." % num_passwords
for p in passwords:
print p
for p in passwords:
print p
+ return (num_passwords, passwords)
+# the passwords parameter is a tuple: (n, L)
+# where L is an iterable type and n is the number of elements in L
def crackpop(host, port, ssl, user, passwords):
if ssl:
pop3_connect = poplib.POP3_SSL
else:
pop3_connect = poplib.POP3
def crackpop(host, port, ssl, user, passwords):
if ssl:
pop3_connect = poplib.POP3_SSL
else:
pop3_connect = poplib.POP3
- print "Testing %d passwords." % len(passwords)
- for p in passwords:
+ print "Testing %d passwords." % passwords[0]
+ for p in passwords[1]:
# TODO maybe the same connection can be reused for more than one try,
# but some logic needs to be added to detect the maximum allowed
# authentication attempts or a disconnection from the server.
# TODO maybe the same connection can be reused for more than one try,
# but some logic needs to be added to detect the maximum allowed
# authentication attempts or a disconnection from the server.