Password Strength

adverse actuelle préjudice phoque
déterminé indécent précédée preston
édité loque arbrisseau médicament
dynamite regardé investigations lichen
villes dépister tige adoptent
stationnés natter malsain 
indécence nord infidèle ordonne
dirigée envisagées académie accusé
sybaritisme birkenau propreté exécuté
contraster logis susciter glapir
montana finissent boulette spontanéité
céréales enfreindre disparus appartiennent
illustre joëlle suppression retenus
alarmer dépannage croisées faussement
matières amorcée puis corporel
revu gravitation chute abondante ultra
rénovateur rentré falaise courage
emprise fûts bourdet papelard
fracture célébré gerhard dizaine
lundi édité élargi 
voisin vulgaire triangle verbale
tenté sortie tunis socialement
vouée vérificateur ventrière lièvre
plaisante homonyme irréductible opérationnel
accéléré parvenait héberger salut
matrimonial lexicographe plages déstabiliser
insurmontable avenues engagée irréligion
râteau occurrence entrevue obtiendra
travaillant détourner allécher cacaotier
renseignement éluder passeport rhin
amaigrir rende oblige écuries
forum planté rangement dédier
journal prémédité procèdent spéciale
flamme stimulation auraient tardive
décideurs symboliquement enceintes pompe
tendue héberger unanimité vivante
altitude opérateurs apartheid aguerri
prorata nationalisées bastia divin
cambriolage affrontements footballeur pans
câline quinte dialectologie lézarde
fascistes fragment appendicite évacuation
grâces épiscopat intérimaires italiennes
copie attendrir poste abc
arabes notoirement notait comédie
respectifs drouot abeille néfaste
arène michelin mis exactions
inéquitable occupent sixième sens veut
concilier venons déguisés fainéantise
griffonner initié déception surprenante
organe but plouc errer
neiertz écorce purin fiscale
acception esthétique touristiques comploter
décrété talents ravager ambiant
collision daller parcourir secs
exportation illégales tempête bivouac
jugée contraceptif tartuffe vaseux
versant terre asphalter baumgartner
livrer philips déposition togo
cuit conservé absurde observait
provisoirement goitre trace vatanen
consiste décrets excellente retour
bourreaux dilemme assainissement rapace
lionel louer acte perturbée
liverpool gouvernementale mouvement donation
préfèrent instruire tropique légères
obstruction rendait suffit bouche bée
feuillets jovial toulouse présidence
consensus opéré associe appendicite
nuisances couvent copenhague dégueulasse
exercer hôpital tombait légitimes
médiatisation odéon dégueulasse goitre
aurait couvrant septentrional naturiste
précisément comptoir ténor prolégomènes
buté résidus préoccupante hexagone
frigorifié allègrement adaptée lapin
miami cessation traduisait hippopotame
pots obstacles illogique théâtrale
sûrs menacé sérieux confondues
contentement choir narcissisme innombrables
manuscrit supplémentaire socialement allumettes
rajouté ariane trivial pensons
édification voltaire extraction intervallaire
luxation fracture godillots bonnes
sondage anarchisme économie décharger
koch mardi auge tableau
chou-rave supprime championnats courir
ému recteur essayer désirer
short conviction indépendantes démentiel
nourrissent fable apport marée
nourriture impliqués séparation tirailler
garantie celle-là irrémédiable congélateur
désagréable descendent assimile sucrerie
abriter guerrier arménienne nombreuse
accumulé dissous chef-d'œuvre australien
demeurer commentateurs cancan produites
énergique professionnel repères effacer
promulguer thérapeutiques miracles alternatives
wagon-lit appréhension épuisement plume
lesquelles verso serons révolte
mondain prospectives retranché dam

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