Password Strength

solide mariages marocaines murs
similitude employés juin intertropical
écoutes prolégomènes ressembler source
pis surcoût autruche poulets
haltère référendum prend requin
urgents multiples déjeuner rapportent
larmes maintien lee effectués
fan entretiennent calculée prophète
pessimiste démagogie syndicale buffet
souhaitait québec péjoratif ménages
misérable braver malheureux soutien
puces dette armistice détruites
priés vaincu rival montoir
communisme abusif chenille gestion
massivement loisir défendre morsure
médecin légiste mandats persécution tribunal
radioactivité ver certaine fermée
masse froidement forcé porte-clefs
démarrage perpétuel investir alpestre
vociférer poulet humiliation cesare
prudentes échantillon multipliées saint patron
parvenues corrompre ragot touristique
plongé dans traditionnels dérapages persistant
cruciale retrouvée rocardien penser
réaliser sand habituellement reconduite
intérêt éveillé marocain enflé
sacoche artisans embauches auditeurs
transposer intimité concepteur compacts
chirurgie grandeur welter moselle
réformateur herbivore renvoyant porté
adhérent déploré fragile nationaliste
émise aiguillon levée ledoux
comptaient tués pêcheurs bateaux
demeurent peint consécutives dextérité
proposées angle caméras défendant
bouteille bureaucrates détenus digne
scolaires indic pointer soixante-dixième
asymétrie dilaté escompte soutiennent
prétendant frire oie 
mission styles escrime couette
chair trempette avant-hier capacités
logeur contraints réticence permettant
commercial vivons consommateurs spontanée
concerto dénuement réorganisation admiratrice
concubinage selle tirailler usé
sauver salons perruche envoie
posait naturellement moindres simplement
intervenir lignée rigoler reprochant
usine espagnols collectionneuse aigreurs
congénère interurbain offensant sommaires
rosser crabe banlieue dirigée
atteints encouragement laine grandement
dimensions séparée modestie rutilant
sortira invasion écolière raclée
productrice bains publics ravauder glucide
publiques réclame ébullition orientale
park proposés administrateur prononcer
épouvante entendait semi aboiement
évaluent délégations restrictions leurs
engin ongles pérès festival
communs ampoule shoah datées
discrètement quai costard constantes
infortune basé protagonistes allègrement
résine répété fourneau retrouvés
indélicat firmes collectionneur participent
la valette constructeur métallique forum
andouille bénéficié jetant intriguer
ferrant interrogateur assisté battage
arbres opérer ponction conjurer
absurdement omniprésent dégueulasser maquette
bande azerbaïdjan sourd entacher
rejoint marks magistrats audiovisuelles
spore indiens chariot ajoutant
mensuel gyroscope agissant exclusivement
brown réaménagement soi-disant paisible
 érosion méconnaître obtenir
concrétion exaspération dessous théories
pensons la valette académique nationaux
réparations mélancolie parallèles stéphane
rayons bannissement inspiration chirac
amorphe beaux subventionner sécession
personnels unifier baume quinze
pencher toxicomanes interminable villages
ranger amodiataire encombrement anthony
chipoter porté loue fixés
bertin manquent encouragée repoussée
rejettent spéciaux pensif cornouailles
génétique languette cite triangle
réprimander usurier voudra tribu
canaille coton point victoires
embouteillages adapté collision sophistiquée
beaux serrer rattachement clope
sommets angliciste risquaient astiquer
abdel dessins poème antonioni
pointilleux contestataire convenir déclaration
benz mufle chasser enquêteurs
improvisation rebelles greffer innovations
affirmation cailloux unification hôteliers
soubresauts kasparov fomenter extorqueuse
anormalement leningrad bailleurs engourdissement

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