EMAIL RULE EXTRACTOR

Generate Hashcat Rules from Email Patterns

Hashcat Compatible
100MB Limit
Python Engine

Upload & Extract Email Patterns

Drag & drop your email file or click to browse

Maximum file size: 100MB • Supports .txt, .csv, .lst

Formats: user123@gmail.com or hash:user123@gmail.com

Number of top domains to display

Comma-separated domains to include

How It Works

1. Upload Email Data
Upload file with emails in format: user123@gmail.com or hash:user123@gmail.com
2. Analyze Domains
Script identifies top domains and trailing digit patterns
3. Filter & Extract
Select domains and extract trailing digit sequences
4. Generate Rules
Create Hashcat rules from digit-domain combinations

Supported Input Formats

# Plain email format
user123@gmail.com
john.doe456@yahoo.com
test_user789@hotmail.com

# Hash:email format
5f4dcc3b5aa765d61d8327deb882cf99:user123@gmail.com
e10adc3949ba59abbe56e057f20f883e:john.doe456@yahoo.com

Example Output

# Hashcat rules generated from patterns
$1$2$3$@$g$m$a$i$l$.$c$o$m
$4$5$6$@$y$a$h$o$o$.$c$o$m
$7$8$9$@$h$o$t$m$a$i$l$.$c$o$m

Technical Implementation

Core Features

Dual Format Support

Processes both plain emails and hash:email formats

Pattern Recognition

Extracts trailing digits from email usernames

Domain Filtering

Focuses analysis on specified email domains

Processing Algorithm

# Extract trailing digits and domain
def extract_data_from_email(email):
  match = re.match(r'^([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$', email)
  if match:
    user, domain = match.groups()
    digits_match = re.search(r'(\d+)$', user)
    if digits_match:
      return digits_match.group(1), domain.lower()
  return None

# Convert to Hashcat rule
def string_to_hashcat_rule(s):
  return ''.join(f"${c}" for c in s)