princeprocessor

Générateur de mots de passe PRINCE (PRobability INfinite Chained Elements). Crée des candidats à forte probabilité à partir d'une wordlist en utilisant des techniques de chaînage et de combinaison : un taux de succès supérieur aux simples attaques par dictionnaire. PRINCE (PRobability INfinite Chained Elements) password generator. Creates high-probability password candidates from a wordlist using chaining and combination techniques — higher success rate than pure dictionary attacks.

↗ https://github.com/hashcat/princeprocessor

Overview

princeprocessor implements the PRINCE algorithm which generates password candidates by chaining words from an input wordlist. Unlike simple dictionary attacks or brute-force, PRINCE creates multi-word combinations based on probability chains — achieving better coverage for multi-word passwords.

Basic Usage

Generate candidates from wordlist

pp64 wordlist.txt

Pipe to hashcat

pp64 wordlist.txt | hashcat -m 1000 hashes.txt --stdin

Set minimum/maximum password length

pp64 --pw-min=8 --pw-max=12 wordlist.txt

Limit to N candidates

pp64 -p 1000000 wordlist.txt

Integration with hashcat

Pipe PRINCE output to hashcat (-a 0 from stdin)

pp64 /usr/share/wordlists/rockyou.txt | \
  hashcat -m 1000 hashes.txt --stdin

With rules applied

pp64 /usr/share/wordlists/rockyou.txt | \
  hashcat -m 1000 hashes.txt --stdin -r rules/best64.rule

hashcat native PRINCE mode (-a 6/7 or —prince) Some hashcat builds support native PRINCE:

hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt --prince

Configuration Options

Number of elements to chain (words per candidate)

pp64 --elem-cnt-min=1 --elem-cnt-max=3 wordlist.txt

Password length limits

pp64 --pw-min=8 --pw-max=20 wordlist.txt

Limit output (for testing)

pp64 -p 100 wordlist.txt | head -20

Case permutation

pp64 --case-permute wordlist.txt

Duplication of elements

pp64 --wl-dist-len wordlist.txt

Building Targeted Wordlists

# Create targeted wordlist from company/personal context
echo "company
target
2024
2023
password
admin
winter
summer
spring
autumn" > target_words.txt

Generate candidates

pp64 target_words.txt | head -50
# Common outputs:
# company2024
# targetpassword
# admin2023
# wintercompany
# company!target

Tips

  • PRINCE excels at cracking passwords that are combinations of dictionary words
  • Use a curated wordlist (company name, names, common words) for targeted attacks
  • Combine with --case-permute to catch variations like “CompanyPass” and “companypass”
  • Chain length affects output size exponentially — keep --elem-cnt-max at 2-3
  • hashcat’s native prince mode (-a 6) is GPU-accelerated and faster than piping
Help / Man page
pp64 [options] wordlist

--elem-cnt-min N   Minimum elements per chain (default: 1)
--elem-cnt-max N   Maximum elements per chain (default: 16)
--pw-min N         Minimum password length
--pw-max N         Maximum password length
--case-permute     Enable case permutation
--wl-dist-len      Distribute wordlist by length
-p N               Limit output to N passwords
-o FILE            Output file
-q                 Quiet mode

Vue d’ensemble

princeprocessor implémente l’algorithme PRINCE, qui génère des candidats de mots de passe en chaînant des mots issus d’une wordlist en entrée. Contrairement aux simples attaques par dictionnaire ou par brute-force, PRINCE crée des combinaisons multi-mots basées sur des chaînes de probabilité, offrant une meilleure couverture pour les mots de passe composés de plusieurs mots.

Utilisation de base

# Générer des candidats depuis une wordlist
pp64 wordlist.txt

# Rediriger vers hashcat
pp64 wordlist.txt | hashcat -m 1000 hashes.txt --stdin

# Définir la longueur minimale/maximale du mot de passe
pp64 --pw-min=8 --pw-max=12 wordlist.txt

# Limiter à N candidats
pp64 -p 1000000 wordlist.txt

Intégration avec hashcat

# Rediriger la sortie de PRINCE vers hashcat (-a 0 depuis stdin)
pp64 /usr/share/wordlists/rockyou.txt | \
  hashcat -m 1000 hashes.txt --stdin

# Avec des règles appliquées
pp64 /usr/share/wordlists/rockyou.txt | \
  hashcat -m 1000 hashes.txt --stdin -r rules/best64.rule

# Mode PRINCE natif de hashcat (-a 6/7 ou --prince), certaines versions de hashcat le supportent nativement :
hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt --prince

Options de configuration

# Nombre d'éléments à chaîner (mots par candidat)
pp64 --elem-cnt-min=1 --elem-cnt-max=3 wordlist.txt

# Limites de longueur de mot de passe
pp64 --pw-min=8 --pw-max=20 wordlist.txt

# Limiter la sortie (pour les tests)
pp64 -p 100 wordlist.txt | head -20

# Permutation de casse
pp64 --case-permute wordlist.txt

# Duplication des éléments
pp64 --wl-dist-len wordlist.txt

Construction de wordlists ciblées

# Créer une wordlist ciblée à partir du contexte de l'entreprise/de la personne
echo "company
target
2024
2023
password
admin
winter
summer
spring
autumn" > target_words.txt

# Générer des candidats
pp64 target_words.txt | head -50

# Sorties courantes :
# company2024
# targetpassword
# admin2023
# wintercompany
# company!target

Conseils

  • PRINCE excelle pour cracker des mots de passe qui combinent des mots de dictionnaire
  • Utilisez une wordlist ciblée (nom d’entreprise, noms, mots courants) pour des attaques ciblées
  • Combinez avec --case-permute pour capturer des variantes comme « CompanyPass » et « companypass »
  • La longueur de chaîne affecte la taille de sortie de manière exponentielle : gardez --elem-cnt-max entre 2 et 3
  • Le mode prince natif de hashcat (-a 6) est accéléré par GPU et plus rapide que le piping
Aide / Page de manuel
pp64 [options] wordlist

--elem-cnt-min N   Minimum elements per chain (default: 1)
--elem-cnt-max N   Maximum elements per chain (default: 16)
--pw-min N         Minimum password length
--pw-max N         Maximum password length
--case-permute     Enable case permutation
--wl-dist-len      Distribute wordlist by length
-p N               Limit output to N passwords
-o FILE            Output file
-q                 Quiet mode