Password Strength

chic hystérique papetier antithèse
matelas assouplir pincer jesse
suspect rapportent suzanne absolutisme
recueils comparaître paulhan apparues
réminiscence sérieuse observait régner
piqûre rivier emploi massives
portait intensité prépondérance épines
mitraillette tisserand pipe noyau
admiratrice berné contraires insisté
commerçant vague ourga raisonnablement
activistes écoulement classer races
incompatible déclenchement nomades nouvellement
jarousse sacrée oreille blocus
connais reproduit trouillarde stabilisée
honnir complaisant frotter borna
habite signaux mot quasi
sceptiques laissera prix bavière
téhéran réunir assombri partage
nourrit rallié répugnant dot
habituelles conseils poursuivait sucer
vendue humble cinquante cordons
guidon graphe labourer postérieur
bactériologie souvenir mineur inévitable
achetés théorie basilique égalitaire
structurelle insidieux concours nuisible
versatilité jeanne paresseux accompagnant
amants blaise shell melon eau
pétale recommandé mouchard avides
lustres fertiliser jaune complications
encourage amiens pressions inévitablement
malédiction radioactivité fraîcheur malle arrière
déclin communications autorité rapetisser
connerie substantielles avalanche exposée
pendre steeple contenant relance
nichons écoliers abracadabrant avoir
bar cran prof vandale
articles détonation disait teinter
adjointe stratégies éphémère envi
météorites quelconque radicales conduites
files découverte pancartes agrémenter
station désignation recrutement activités
paramount incertaine snack bas-fonds
continents barbie manu clignoter
andorre déroulent technologique vieillards
serbes tentée épargnée mander
immaculée conception speed sonagramme éloges
admiration anarchiste abreuver besson
bangladesh susceptible inauguré clemenceau
ineptie opposait entretient misogyne
blouson garden souhaitaient albertain
karstique convaincre surclasser brune
symptôme distribution manuelle malheureux
évaluations édifices condamner andorran
réseau flanquer aboutit pollutions
motocyclette néerlandais actualité diesel
vache indulgence appartiennent jeudi
craquer cartons ajoutée consolidé
suspects conçue urbanisation shampoing
renvoi bouddhique tandem soliste
fouler précisant richter nus
metteurs galère colonne persécution
précédente écluse laitue loge
recharger front informés douloureux
accompagnement sobriété reins abattre
gandhi illégale fructiculture durer
périodique lamper psychodrame non-intervention
indigne hydrogène diminution prises
goebbels abstinence plaide charges
courageusement banal avidement émetteurs
lèvent allaient resplendir ménages
rugby sybaritisme chinoise tuées
couturiers occasionner marée serrée
momentané presser index variété
traductrice levant retour enfance
passait coup de feu moine recompter
minutieuse lee sculpter plongé
redevable développer engueuler craignant
ong  passé chirurgiens
déterminant brooklyn radios existantes
computer imagine fondamentalement clavier
lunette voulaient fusion influences
mesure veuve stipulé faune
imposés puissent révélée pépé
monstrueux mésintelligence vestiaire blé
conifères festivités bilatéraux croyance
toqué révèle tragiques venues
occultation précisément abaissé grec
sexuel humain remontrance metz
intensive apparus championnat dorure
pourrir consultants modérer rapidité
années répercussions peuvent repoussant
infirmier city maltais privilégie
panacher croiser occasion évaluer
avion traitements cause incorruptible
dictionnaires dactylographie treize tavernier
distribuées cendrillon reconnaître entailler
chemins incompréhension jambons immeubles
préoccupent kaboul bénéfice avidement
préjudiciable mutuel plat oiseau-mouche
érotique croix avais exploitant

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