Password Strength

comptable révolte télécommunications constants
diplômés principauté ancien concupiscent
cerisier évoquant réseaux précipitation
refuge asperge mann hypermarchés
outrepasser déclenchée entraîne proposition
parité retrouvailles modifié monter
soir officiel beauté casablanca
demandeurs moyenne bouclier absorption
subséquent ragaillardir eyadema amputation
fripon réveiller galland plaisir
déboucher inconsidérément corrélé désabuser
galeries cul sec darder peureuse
investigations séguin délié habituelle
désigne verrait légaliser larme
lubricité requalification dirigent rythme
choisies baron commençons saoudite
pétition chimique loquace remorque
bête chapon combats vociférations
paumer efficacité forcée prudentes
aviez expérimentales caractères générosité
purifier sépulcre sachem escorté
auxquelles contestataires déduire innocence
ouvrier travaille forfait exercice
victor debout danièle exigeants
abdiquer avisé pertinent massivement
accumulé touristique électrique prérogative
notre vélo roulant préoccupation
accompli opté démissionne exemples
somnolent gâteau forestiers géorgie
comprenait chemises pantalons trottoir
irritable costa quête chic
collaboration échecs languette colin
rudesse noureïev expliqué accrocher
hôte attirer anthony pourrons
cinématographique dernière associés diplômé
percer bacheliers péjorativement souvient
retrouvent dénonçaient russes différent
renégociation surveillée lésion autochtones
dupont bouteilles musical tant
minière extorsion nette lavé
claude antithèse militantisme tours
remorque reportée judo dansent
shopping sénatorial industrielles accrocher
bizarre albertain plaque gaffe
quimper nombreuses occiput avertit
constater gagné constantin vocable
confisquer multiplie intervention teinture iode
personnel carrosserie natal pionnier
pièges enseignements choléra accueillie
cardiaque adam toilettes sphère
résistances ruisseau perle voyez
comprennent correspondent sec aquitaine
élaborer racontant contentieux dru
affûter roulement geler compétent
fameuses déversement draguignan signalés
entailler opposition mener débarque
veinard format apparente catalogues
illégaux risquerait succédé sans
découle ailerons clans montées
critères violations transporter impuissant
régulièrement particules pavage semaines
escargot couteaux inclusivement devenait
arrivées élaborer contribuent schlass
imminent kilomètres avortement cohérente
réitéré académiques parti tirés
univers sentinelle duos extraction
 blasphémer incarcéré angola
spirale minuit monarque infirmières
inférieure transformés promise téléphoné
idéologie vaccins voyaient tolérer
tati évasion estimation publicitaires
longitude livrer dures développée
autrichienne envahisseur guyane bas
saisit architecturale indication présupposer
vénéneux puissance influences malingre
algorithme occupées robot appartient
ouvrières patrie engendre kidnapper
ameublement this diffusion promu
opérant avelinier tranchée exportateurs
monnaies brunir danser caverne
astiquer amusement braguette secondaire
lèvres suffocation largesse vivants
gramophone tchad luxe messie
japonaise creusé vierges liverpool
concitoyens mêmes conduisant informatisé
apprendre surnaturel susceptibilité raoul
marmot élire réduits trombe
hésitations sajous industrielles chaude
hériter apportés recours électricité
burundais classique chantent inscrites
interloqué fortuit amas barrière
participe hoqueter téléphoner opposant
argument tentacule claires comédienne
distillerie défiler sanglante dédier
protester pompe catimini argot
secourir consécutives résiste affirment
suffisant affichés islam gide
avertis attique abord renfort
astiquer crient directes complaisance
battent delors croissante riper

<?php

/**
 * @file generer_password_xkcd_com.php
 * @brief Ce script va générer un mot de passe tel que vu sur le site xkcd.com.
 *
 * @author hughes monget
 * @see http://monget.com/
 */

echo '<p><a href="http://xkcd.com/936/" target="_blank">Password Strength</a></p>';

$str_chemin dirname(__FILE__).DIRECTORY_SEPARATOR.'liste_francais.txt';

$arr_str_mot file($str_chemin);
$arr_str_mot array_map('trim'$arr_str_mot);
$arr_str_mot array_filter($arr_str_mot);
$arr_str_mot array_map('strtolower'$arr_str_mot);
$arr_str_mot array_unique($arr_str_mot);

echo 
'<pre>';
for (
$ii 0$ii 100$ii++)
{
    
$arr_tmp = array();
    for (
$jj 0$jj 4$jj++)
    {
        
$arr_tmp[] = $arr_str_mot[mt_rand() % count($arr_str_mot)];
    }
    echo 
implode(' '$arr_tmp).PHP_EOL;
}

echo 
'<hr />';
highlight_file(__FILE__);