Rockyou _hot_ - Wordlist
def load(self, max_passwords: Optional[int] = None) -> List[str]: """ Load the wordlist into memory Args: max_passwords: Limit number of passwords to load (for testing) Returns: List of passwords """ passwords = [] # Handle gzipped files if self.filepath.endswith('.gz'): open_func = gzip.open mode = 'rt' else: open_func = open mode = 'r', encoding='latin-1' try: with open_func(self.filepath, mode, encoding='latin-1', errors='ignore') as f: for i, line in enumerate(f): if max_passwords and i >= max_passwords: break password = line.strip() if password: # Skip empty lines passwords.append(password) except TypeError: # Fallback for older Python versions with open_func(self.filepath, 'rt', encoding='latin-1', errors='ignore') as f: for i, line in enumerate(f): if max_passwords and i >= max_passwords: break password = line.strip() if password: passwords.append(password) self.wordlist = passwords self.loaded = True return passwords
""" RockYou Wordlist Feature A comprehensive utility for working with the rockyou.txt wordlist """ import os import gzip import hashlib from typing import List, Set, Dict, Optional, Iterator from pathlib import Path from collections import Counter import re wordlist rockyou
class RockYouWordlist: """ Feature for managing and analyzing the RockYou wordlist """ max_passwords: Optional[int] = None) ->
def get_hash(self, hash_type: str = 'md5') -> Dict[str, str]: """ Generate hashes for passwords Args: hash_type: 'md5', 'sha1', 'sha256' Returns: Dictionary mapping password to hash """ if not self.loaded: self.load() hash_func = getattr(hashlib, hash_type) return {pwd: hash_func(pwd.encode()).hexdigest() for pwd in self.wordlist[:1000]} # Limit for performance encoding='latin-1' try: with open_func(self.filepath
def export_subset(self, output_path: str, passwords: List[str]): """Export a subset of passwords to a file""" with open(output_path, 'w', encoding='utf-8') as f: for pwd in passwords: f.write(f"{pwd}\n")
def search(self, pattern: str, case_sensitive: bool = False) -> List[str]: """ Search for passwords matching a pattern Args: pattern: Regex pattern to search for case_sensitive: Whether search is case-sensitive Returns: List of matching passwords """ if not self.loaded: self.load() flags = 0 if case_sensitive else re.IGNORECASE regex = re.compile(pattern, flags) return [pwd for pwd in self.wordlist if regex.search(pwd)]
