Password Strength

achèvement dérober aspects potage
put militante entacher libye
animé plante majesté familière
introuvable écot passionnément sarl
obtiennent barométrique piquant rapides
prénom devance laver châtiment
diplomatique engouement defferre suzanne
diminuent nationalités ordinal fiacre
déconvenue bénéficieront rentable niant
revenu féroce harmoniser bâillement
apollon ait paire distingue
impérativement arrivées sérieux chargeurs
réalisées hors d'œuvre uniques collaboré
tannage azote notamment fini
considéré précédente assemblée fonction
parut consulté tanner verglacé
rappelle rassemble surclasser coutumier
deviner chaînes ferait enthousiaste
welles laquais tracer gages
bourrer stable félicitation tons
celui-ci saisit meetings pentu
costume pins fanfaronne planque
attentivement cavité arthrite déchets
américain griffonnage classer corroder
sépulcre indiquée siège islamiques
oser piquet exilés dérogations
autonome intérimaire lev 
indiciaire concitoyens hésite charlatan
guérir écarté confirment bonheur
profondément congé épisode pli
sakharov procède fatalité impensable
changements amphitryon répètent réduire
poursuivies repos musique faiblesse
viser tapage division pragmatisme
économie contrôlée timbres anatoli
crudité laïc tunisie distributeurs
virgin voyageurs exprime condamnation
engueuler dilapider tiare dégagés
folklore exactitude irascible sapins
exigence bobonne préoccupés convocation
suivra rapidité hardiesse exposition
authentique passeront initiale enchaîné
contente extorsion piocheur borna
sentiments prive tas lara
congé consolidation choquant chanteurs
housses chipie révolutions nommée
incarcéré circulé confidences avare
attention théâtralement fédérales révolutionnaire
formuler by invitée cambriolage
nucléaire maternelle exhaler égide
biarritz théâtrales productive lutrin
retentir clinique rappeler soulignant
amputer syndicats harpe étamer
auprès de empaler motion do
affiches réseaux encolure cheminer
industrialisation bâclé décadence strident
vois pluie batterie tissu
conjuration contradictoires teint bon cœur
déballe! médaille financière performance
iranien townships décor coupures
transports équilibres observe décade
culier scribouillard gaullistes ferrées
sursis distingue jeudi dresde
quinze collectionneuse claudicant rougir
meuse contingences acceptation berner
surpasser marquées changé octroyer
ramifications guerroyer rafraîchir voyager
valentin retentissement indiens franc-maçonnerie
humains disperser protestataires charmeur
pomme de pin régulateur gâchis illustrée
instance citronnier souffrant disque
forment ruraux profils archipel
raffut cuisses prendra inconstitutionnel
stationnées fumer interpellé maigres
déterminant informées conservatrice transportés
lignées roi brandy acharnement
occupant journée antigouvernemental aliments
imposés helvétiques ignoble fondre
pensif représenté volontariste assurer
renoncé soucieuse prolétariat commence
discrète banian effronterie pyrénées
canetti angliciste escarpement evry
flaque fifties apprentis calmement
abstraits alouette flèche bataillon
maquettes auteur soixante enfance
affairiste garnement mander morte
fine aumônier tartuffe contre
mercedes adn prépare sanglier
variabilité haut-de-forme collectifs parapet
brune fusiller carioca gazera
anticipation captivité milliers animisme
chandail organiser tables stoppé
adéquat lie traitait poulie
satiriste engins commun costaud
transformations fer griser macaroni
écheveau mari blackboulage rigidité
putsch films piano silhouette
soude permette rêvasserie nommer
adverse clandestinité jadis mythes
quatrième compétitifs conquérir fat

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