Password Strength

abordage maigret débarrasser baptisée
nomme puzzle cousins happer
interner florins ouverte affréteur
discussion rapproche transylvanie menu
massive approfondies négresses tombée
cou immigrés paillettes lettres
andain choisies finesse faudrait
pain fruit moyenne formels
bercelonnette sûres boudé surtout
cachet lewis virgule plantés
vierges statut pacage candidature
initiés laffitte multipliées glasnost
suggestions ennui carences concordantes
pépé agacement ramifications saisonnières
départ rire espagnols once
lassant évêques japonaise commissions
présence courber oublions héritier
demandeurs indirect gustave principale
piliers biographie gaiement idéal
avocat disait songeur excéder
glaise imaginer avorter franchissant
lessiver gagnera dépêchés hululer
manchester flexibilité fréquentes atropine
marner surgit chauffeurs viendrait
monarque vénération officielles daigner
ressources négociations fournisseur sous-développé
ferveur versé matériel motocyclette
dépêché chorégraphe amortissable réparties
lecteurs prolonge durabilité forteresse
analphabète réside défaveur rongeur
blâme trémie sommets intact
procède océan dispositions rapatriés
frustrations revenant barque constatait
chu établir mann dévasté
plâtras laisse vies largement
toits godasses triplé montpellier
extradables gènes épiscopat apocryphe
prusse intègre tarif béatitude
cuisiner licencieux exagéré virgin
transmuer tapageur photo compétent
treize démolition appliquer réitéré
mai jamais statuer sourdine
sportive ahmed anesthésiant poussent
maîtrise tchécoslovaques bêtise vision
âmes jacky appentis roumain
essor résidus soupçonné législateur
maternelles cintre paris rugby
estimé laissa microbe pastiche
artillerie tentant fonctionnaire chétif
influent exode expriment implacable
trouvait chancel stagiaires augmentation
paradoxalement passant retentir sarthe
semi  écervelé gêneur
déserte abstraite mikado réclame
noter énergétiques cent admise
feuillage sympa croyons bestiaux
maximale fourmiller kaspar maternelles
dissidents amazone cotisations précédé
gestes ballastages cabinets footballeuse
consécration ordinaires objectifs trochet
akbar essentiellement immobiliers berlusconi
poule contentement trimardeur reporter
cinoche consensuelle ajoute forte
connasse fêter prophète insoucieux
terrestres luciole bananier coupables
joseph attestation soutiennent ponctuel
alléguer cliquet bambin warrants
sauvage montagnard bouger retaper
punition feuilleter grèce course
occupants ventrière cueillir vitesse
élément principauté d'andorre contribuera goulag
immaculée conception narcissique abri employé
bébés dépendant dominer sir
menstrues précepte époques auraient
mentalité peloter capter incompétent
câble foie déchaînement esprits
lustres piquer imprenable nier
consolation épouvante suédois avidité
baraqué front sénatoriales serra
implantées ensorceler dondaine terroriser
eskimo taquinerie confronter envisagent
micro rentabilité marocain escorté
céramique travailliste martin-pêcheur libéral
suffisamment crépuscule prochainement laissant
longue durée dénonciation  récupère
marxiste crève-cœur breuvage émissions
devant circonscriptions cornouailles essayons
albert troupier revenus maniement
autonomes abricotier bénéfiques associer
monarchie prometteurs réuni charcuterie
nomades vachard rendement indemnité
occupant signe de croix allouer étude
major récit concis guindé typo
opéras communistes juteux épouser
titiller palper émouvant balsamique
assaisonner continents entamé hautes
monstre champignons leasing proportions
extérieure accusations culturels gaieté
salisson pieu dorsal californienne
privilégiée trahison indéterminée sexuelles

<?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__);