Password Strength

vilain consécutive ménages théâtrale
planète nommer astronautique carrés
habitation parlements franchit consciente
toiles malle arrière photographique rendus
carrée came utilisés blanc de chaux
bâtiments queneau catalogue bénéficient
échafaud filières cerne cailler
considérer nerfs acier organisation suborner
parlera décrété religieuse mardi
viande strate établit effaroucher
évoquées proposait brûlant beurrer
impossible figuration gestionnaires immédiate
france promoteur inhabituelle recopier
gars notes extra associant
perche intitulé métamorphoses clé
fidèle souteneur aisée postes
amputer trivial rouiller rééchelonnement
recourir entrefilet pardonner koweïtiens
résolu solidarité décentralisation inutilisable
plancher lambert feuillets mouiller
siècles contraints expier châtain
requêtes euphorie exigu dignité
incapables marseillais gastronomique immuable
not caboche caboche burundaise
repu permettrait comportement majoré
manipulations mécontentement revirement rigides
écoute ébullition as abri
minoritaires emprisonnement battre dimitrov
dit opposant rationnement jalouser
méconnu décision détruit conduire
bilatérales saluer description approbation
joseph tenu froide généreusement
navettes inconnues réussites certaine
prononcée poutre lacune péjorative
épuisement mutuel pelage bavarder
bousculade statistiques sépare colonial
parcouru évanescent complexité totalement
réserves noël spécifiquement discret
bic caves swapo godillots
gâchette jubilé génétique latéral
bave clés derrière blinis
urgents constatation cacao coquillage
crâneur renforcée alêne bourgeoise
accueillera tournoi thème devient
policier prolongé messages fonte
immeubles interrogateur esquisses grandissant
aisne laideur retrouvant suivaient
préconise pluvieux battants annoncés
colombiens condamnations bienveillance panoplie
ennuis disculper assassiné pédagogie
autochtone hymne parente conçue
affrontement françoise sangloter coton
choquant confrontation palier 
observait durables atlantique objet
intuition oblique vatican deuxièmes
adminicule trépassé prostituées eau de javel
croissant rome détour rosita
fixation stéréotypes monsieur couleurs
néanmoins loisirs sépare disaient
aphasie restitution billets graham
initiales imminente maladresse sirène
besoins atteinte protège redevenu
boat people carré irlandaise chrysler
eiffel aveugles grandir formées
cholet sursis confins radiation
leclerc encercler servage casser
dodo combinaison pousse hystérique
saisies singulier monteurs précipitation
aînée démence touchées deviennent
dramatiser noël faisan bibliothèques
initiale poirier réduits encore
obéissant combine cinéastes agissant
entretenue annexes juge grain
pérennité laffont écran réviser
variations jouets télégramme alsace
assistée souverains chances lamelle
extrêmement montante sachant attachés
panacher arrêtée nièce outsider
introduite surnaturel chaloupe départementales
récuse criminalité récoltes vicier
leasing terne prématuré aussitôt
russie anticipation fixant pattes
par-derrière glucide antibiotique initiales
détracteurs déguiser inoxydable abonnée
ayant soixante-dixième mémoriser freins
grains conclus employées rubicond
arthrite singapour irlandaise hurlements
rencontrait munitions torse insuffisants
descendre goût poignard stipulation
accompagnées tôle clair versés
moléculaire déposséder deutschemark deux
léguer modifier interpeller communes
ruban couples boulanger embarras
sénatoriales apologiste australiens étriller
lunettes approvisionneur aéronautiques presses
appliqués réservés nucléaires séquences
préface avances canetti lagune
déterminant sélection plein duplicité
enjeu rite maigres décide
abdomen enchanté guerre française

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