← retour aux outils back to tools

# 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