Password Strength

erevan dégriser prestation observateurs
consiste avertis fantasme renfermer
mucoviscidose garnier aimable correspondant
léthargie increvable crique accusations
démolition engendrer tremper plume
verser cal réaliser dray
resplendir civil émission atrophie
bel âge genévrier tare démolition
instantané éclaire typo suivantes
interstitiel alexandra infirmière pacifistes
bush fail bordelais naviguer
comprise histoire mark crapule
reporter isolement apparences meurtrir
pourrait bnp payot proches
modernes colère osciller maniable
parole girouette onzième pèlerins
dignité suivra spécification persistant
flirter copain immanquablement exténuer
postal productifs matrimonial parlementaires
dupé apprêter étudiée planque
coupés dirigées consommer glaçon
désintéresser réglé saine sucré
fromage demandes tranchant récoltes
respectabilité empaqueter nous réductions
restera moyenâgeux porte-clefs effronterie
fisher  citer satyre
ficelle ronflement fiterman accueillant
dinitrile individuelle top finissent
néphropathie dingue aquitaine bâtiment
utilitarisme initiation naphte féminin
lèvent classifications faillir pentu
cerceau emprunts magistrature pastorale
nulle fournir inauguré cardite
démarrage composites investi paradoxalement
juridique essuyé gabriel négatives
sapeur-pompier tronche chelem rentabilité
bush verdun coproduction réussira
liquider regrouper balancer tiennes
commun michael barque notables
tournés passionnant mécaniciens gaëlle
internet tombé résigner vérifier
héritiers poubelles formalités relâchés
contrairement doyen pelletée accompagnement
phénomène persécuter réparti serrer
valérie trolleybus investissent exploité
austérité respectueux veillent nazisme
peuhl rangées régurgiter dessinent
quarantaine culottes défendu chantant
devrions envoûtant produisant quiproquo
 individualiste jouées feu!
incomplétude tonner cinoche sauve
écho confiée impressionné accentué
francophonie plait opprobre philip
dualisme roulement thomson josef
fonciers nonante assurées humer
amphi hypermarchés présentait midinette
familles non-sismique implorer technologique
largeur seins carburants simplifier
commises souscripteur marcher jouées
occurrence astrologue audition atrocité
carcéral insupportable intentions attachée
bouche bée équipes joseph dérouler
festivités donjon congratuler prestation
plaignant arrondissement véreux pilule
redoutables correct calvet channel
ancienne bourdet raconté charpentier
célèbres massif réunions intention
éclaire dramatiquement inférieure sonnerie
pas candidats appelées visions
tragiques avilir nonchalant motards
inséré sommation chat bambin
gerber différents rocardien fourneau
promu preston individus diesel
mie isolées nécessiter finesse
soirée observer gironde fortes
cliver péremptoire infinie poissy
absolue copulatif record soûlerie
débordement espace public concorde
prolongement fréteur définitive séculaire
havre déteindre protestant éthiques
multiplient comté cacao vérificateur
cabaret resteront déplumé pris
entendre effectif envahi silences
ljubljana croyants profitant 
bélier précautionneux opérant sérieuses
mise godelureau culinaire dessous-de-table
financées feu! comptabilité sujet
crémerie destination étriqué faiblement
ouïe voudrait disponibilité dizaines
espionner renouveler réglementation brutalement
rédaction connivence comportant persistent
chien courtes canarder guenon
mutisme généreuse accéléré dédommager
empereur fossiles envisager bon grain
solaire mille révélations 
détracter feuilleter septembre prématurée
divisée peser métrer souscripteur
essayant citrouille mécontentement réfrigérer
interner antisémitisme fixe citée
théorie givre suspendu russe

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