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/princeprocessorOverview
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-permuteto catch variations like “CompanyPass” and “companypass” - Chain length affects output size exponentially — keep
--elem-cnt-maxat 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-permutepour capturer des variantes comme « CompanyPass » et « companypass » - La longueur de chaîne affecte la taille de sortie de manière exponentielle : gardez
--elem-cnt-maxentre 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