Password Strength

lunettes odorant bougonner contemporaines
frédéric fièvre diamètre proposer
ensevelir patience effets fracas
déplier continent fidéliser chiper
parcimonieusement accrus fêlé goudronner
irascible bique forge inlassablement
diviser incompréhensible également baron
rival anglaise réalisée absurdité
intempestif glacière armées framatome
bourg indicatif signalés amérique
utilisateur informaticiens avancés bluffeuse
revendiquer ministre inquiétant bâtiment
licencié cageot cerveau insuffisant
saute poursuites contrôlées ronchonner
fanfare automate intime simulacre
dix environ éraflure patrouille régnait
insalubre frank abonné bannir
trahir renommé sardines prudents
millimètre décident modifié borne
perruche laminage chiard poursuivra
revigorer parterre corpulent antipathie
primes rêvait crispation tsar
chantent loyers confrontées couverts
fada totalitarisme piétonne départementales
essai chaises fermés rivier
gosse impérialisme intrigant japon
invraisemblable immotivé options indiscrétion
retarder huile jésus-christ trouvailles
concubinage kilo pébroc vivres
soupire adolescents hygiène reagan
ingérence traité roumain stephen
diffuse dégueulasser tardive extérieurs
conciliateur commissaire sponsor certifier
chat richter plume effacer
multimédias volontaire porté clignoter
salope déconcerté comique chargée
expliquer indication andrei brouillon
versatilité écoles ont office
vingtième surmonter jeun mexicaine
miami arôme baryton soulignait
sons conformes placide respectueux
colombien exploration lycéens dépérir
dynamisme indicatif parlera amoureuse
soustraire auxquels tract surcroît
nocturne pot portant plénière
consécutive trouvée justifiant distingue
plafonds tanzanie terres liquidité
patron ukraine lézard insurmontable
rangement condamner cash juriste
canon conduits entièrement style
citons vigneron briquet montage
papy timide coupure sillonner
europe hystérie béninois lourds
usé libyens vexant regroupe
ordinal entourée monstrueux omar
réunissent babylone cochon compétition
flot désespère éponger réacteur
maintenu délégué ami cristallin
rameur descendant restaient demandeurs
sociaux nettoiement ajaccio parcourt
cot unes organisés natation
bougainville émoussé humide venger
progresse sciage obtiennent blutoir
éclater lecteurs code page
formel théière complémentarité torcher
subside institutionnel matière effectuant
énerver hospitalité œuvre penchent
pratiqué phones aplatir donneront
prouver calculée transpirer forcée
reliant investigations longuet révélées
vraisemblance préconise lycéens cent
déposition hélène plante nominal
poursuites marginalisation minou firme
business médaille très aile
cervelle héroïsme end remplace
demeurée marqué renoncer moraux
paletot soixantaine malpropre célestine
monteurs marquer hermétique günther
disposition servent consignes similarité
dissertation stations mitigé routière
épuisement provençal gueuse syndicalisme
périr signale habitude artère
expulsé havresac mystérieuse orteil
aborigènes touché adhérente te
curé conçu animées couvertures
ornemental navigants caroline originel
revendiquant opportun toilette utilisation de
ébahi irresponsable indépendant guiboles
champignon rencontrer farce léon
analogue infâme impliquant aborigène
ramène relié rocheux tamiser
circonspection ogre fuites contentant
frédéric douteuse aussi opérations
complémentaires dictature ouïr limoges
régiment étroite cinéastes cinquième
recette ogresse faciles expulsés
dessous heidegger gentil détermine
canotier juive accordéon mitoyen
dérapage extérieure bouteilles pô
chandelle gracier bucarest paires

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