Password Strength

voisines solidarités motivé importation
oléoduc lustre buts vêtu
écroué administrations averti batteries
dont évite narrateur roupies
émettre louvre apprentissage anticipée
patronat snack-bar propre existe
valenciennes prétendent honteux nomment
limitant aménagé ingénieurs sirop
menacé tchécoslovaques purulent chouchouter
photographie sensuelle auspices octroi
respecte animés empaqueter fête
attirent types affabilité chambres
pâtes procession balafre remblai
dessins commerçants adams désirait
gourmandise cas commerçant merveilleux
vaisseau dessiné estivale villes
philips résume rapide 
marquera pourcentages privées menant
cerf emprisonné hassan iranien
accumuler oléagineux ennemi stylistique
chameau période inventeurs élégant
pénales insuffisant brise vues
laissera vésicule ratification posé
perspectives actionner barbu vite
dessous-de-table paré contrainte choisi
bloquer difficulté représentés rassure
rationalité bileux atteints aromatiser
libéralisation citées maronite vision
sanction salisbury amours hebdo
uniquement pu assurés iode
prééminence reed susceptibilité brun
inconnus croupissement valu cassation
centaines morose chirurgiens blanchisserie
ébouriffé trafic rapine raisonnement
humidifier garer malaisé venue
déserts outil sagace prouvent
doctoresse ignorance émises tronche
épiscopale empêcher miliciens molotov
barils déchoir nationaux prochaine
paganisme débute ivan homme
ascétisme rencontre bonasse essentielle
martyre maîtriser cimetières proie
contorsion canadienne admiration réformes
convier loupé fonda lancinante
patauger atouts câlinement abréviations
épopée flexueux négociables désapprobation
vers luisant exclusion socialement daltonisme
matière embouchure concernant lionel
désignée déclaré biélorusse convaincu
consulté divisés n'djamena entrés
cherchent principe annulées reprocher
pomme abondant file payés
excommunier ravis satellites découvrait
accents diane confronté locution
seine témoigne london crottes
bondir évadé présidente acrobate
cotées concordantes difficiles délicates
fermées particuliers liquides ceci
laborieux olympique blanchiment incertaine
laissait déblocage nourrir resnais
prier dialoguer aille devint
agents cubains saut sautiller
venus balkans coalition diabolique
célébration participé écartés doubles
automatisation destruction larges kurt
vêtir déchu poursuivaient corroboration
dérangé service balayer injustice
fourniture prenons rustaud tendre
répété état d'esprit inculpations paye
talent décoré péjorative suivante
moabite smith sensations inférieurs
sakharov je définissant illégalité
hommages incompatibilité compétitivité formateurs
marées royauté fischer démonstration
caisses excavateur entretenir volitif
saisine allan publiquement sculpteur
électricien dédommager garde-corps morbihan
invente alpha ferment rangées
rappeler dessiner ficelle colère
geneviève éducative mobiliser scandale
documentation prouve redevable atteinte
somnoler brioche académisme avancé
commérages réalités fortunes classifications
demandeur viendront héraut poursuivre
révélations cérémonieux blindé logistique
désapprouvant monopoles audiovisuel raide
fit iceberg délégués harmonie
répandre réfugié frousse évoquant
patriote moufle bouffe houlette
haie précédent utiliser rareté
créées dénoncer célébrité romain
franc suisse onduleux musicaux
vin épuisés connaître bouleversement
impériale investissements physionomie sensation
malheurs fausse convié occultation
licencier bombardements souffrent donneront
enlevés gravier retard étudiantes
équipée pincée reconversion pyramides
entendaient graduation recrutements météorologiques
outsider interdisent speed semences

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