Merge pull request #8 from xd4rker/master
Optimized script to process large wordlists
This commit is contained in:
		
							
								
								
									
										74
									
								
								statsgen.py
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								statsgen.py
									
									
									
									
									
								
							| @@ -121,58 +121,56 @@ class StatsGen: | |||||||
|     def generate_stats(self, filename): |     def generate_stats(self, filename): | ||||||
|         """ Generate password statistics. """ |         """ Generate password statistics. """ | ||||||
|  |  | ||||||
|         f = open(filename,'r') |         with open(filename, 'r') as f: | ||||||
|  |  | ||||||
|         for password in f: |             for password in f: | ||||||
|             password = password.rstrip('\r\n') |                 password = password.rstrip('\r\n') | ||||||
|  |  | ||||||
|             if len(password) == 0: continue |                 if len(password) == 0: continue | ||||||
|  |  | ||||||
|             self.total_counter += 1   |                 self.total_counter += 1   | ||||||
|  |  | ||||||
|             (pass_length,characterset,simplemask,advancedmask, policy) = self.analyze_password(password) |                 (pass_length,characterset,simplemask,advancedmask, policy) = self.analyze_password(password) | ||||||
|             (digit,lower,upper,special) = policy |                 (digit,lower,upper,special) = policy | ||||||
|  |  | ||||||
|             if (self.charsets == None    or characterset in self.charsets) and \ |                 if (self.charsets == None    or characterset in self.charsets) and \ | ||||||
|                (self.simplemasks == None or simplemask in self.simplemasks) and \ |                    (self.simplemasks == None or simplemask in self.simplemasks) and \ | ||||||
|                (self.maxlength == None   or pass_length <= self.maxlength) and \ |                    (self.maxlength == None   or pass_length <= self.maxlength) and \ | ||||||
|                (self.minlength == None   or pass_length >= self.minlength): |                    (self.minlength == None   or pass_length >= self.minlength): | ||||||
|  |  | ||||||
|                 self.filter_counter += 1 |                     self.filter_counter += 1 | ||||||
|  |  | ||||||
|                 if self.mindigit == None or digit < self.mindigit: self.mindigit = digit |                     if self.mindigit == None or digit < self.mindigit: self.mindigit = digit | ||||||
|                 if self.maxdigit == None or digit > self.maxdigit: self.maxdigit = digit |                     if self.maxdigit == None or digit > self.maxdigit: self.maxdigit = digit | ||||||
|  |  | ||||||
|                 if self.minupper == None or upper < self.minupper: self.minupper = upper |                     if self.minupper == None or upper < self.minupper: self.minupper = upper | ||||||
|                 if self.maxupper == None or upper > self.maxupper: self.maxupper = upper |                     if self.maxupper == None or upper > self.maxupper: self.maxupper = upper | ||||||
|  |  | ||||||
|                 if self.minlower == None or lower < self.minlower: self.minlower = lower |                     if self.minlower == None or lower < self.minlower: self.minlower = lower | ||||||
|                 if self.maxlower == None or lower > self.maxlower: self.maxlower = lower |                     if self.maxlower == None or lower > self.maxlower: self.maxlower = lower | ||||||
|  |  | ||||||
|                 if self.minspecial == None or special < self.minspecial: self.minspecial = special |                     if self.minspecial == None or special < self.minspecial: self.minspecial = special | ||||||
|                 if self.maxspecial == None or special > self.maxspecial: self.maxspecial = special |                     if self.maxspecial == None or special > self.maxspecial: self.maxspecial = special | ||||||
|  |  | ||||||
|                 if pass_length in self.stats_length: |                     if pass_length in self.stats_length: | ||||||
|                     self.stats_length[pass_length] += 1 |                         self.stats_length[pass_length] += 1 | ||||||
|                 else: |                     else: | ||||||
|                     self.stats_length[pass_length] = 1 |                         self.stats_length[pass_length] = 1 | ||||||
|  |  | ||||||
|                 if characterset in self.stats_charactersets: |                     if characterset in self.stats_charactersets: | ||||||
|                     self.stats_charactersets[characterset] += 1 |                         self.stats_charactersets[characterset] += 1 | ||||||
|                 else: |                     else: | ||||||
|                     self.stats_charactersets[characterset] = 1 |                         self.stats_charactersets[characterset] = 1 | ||||||
|  |  | ||||||
|                 if simplemask in self.stats_simplemasks: |                     if simplemask in self.stats_simplemasks: | ||||||
|                     self.stats_simplemasks[simplemask] += 1 |                         self.stats_simplemasks[simplemask] += 1 | ||||||
|                 else: |                     else: | ||||||
|                     self.stats_simplemasks[simplemask] = 1 |                         self.stats_simplemasks[simplemask] = 1 | ||||||
|  |  | ||||||
|                 if advancedmask in self.stats_advancedmasks: |                     if advancedmask in self.stats_advancedmasks: | ||||||
|                     self.stats_advancedmasks[advancedmask] += 1 |                         self.stats_advancedmasks[advancedmask] += 1 | ||||||
|                 else: |                     else: | ||||||
|                     self.stats_advancedmasks[advancedmask] = 1 |                         self.stats_advancedmasks[advancedmask] = 1 | ||||||
|  |  | ||||||
|         f.close() |  | ||||||
|  |  | ||||||
|     def print_stats(self): |     def print_stats(self): | ||||||
|         """ Print password statistics. """ |         """ Print password statistics. """ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user