Password Strength

endurant contenait déplacées valse
examiné savantes menteur contingent
permettraient maroc prohibé muret
ordonner opérations taureau accuse
humaines récent potage exiger
billancourt gaze libyenne jalousement
carmélites orages conjecturer made
changement cimetières charitable longitude
inopportun poumon incivil limitent
danielle provisoirement apparues péjorative
livrer archéologue tournure développée
espagnol cloîtrer flamme cordes
gagnera grant géante notant
fervent indiquant ivrogne croisées
résister accabler équitable adagio
laid lycéens rectorat fondé
sourit rêvasserie retrouvant empirer
en conscients inconfortable désinvolture
courage turin critiquée interprétations
quasi jacques provocation guère
christiane acceptation dommageable britanniques
glaçon saignant ininterrompu iliescu
hector accordait pompidou one
décombres coexistence thaïlandaise œsophage
élancé indépendants recette réverbère
rétention chantier naval godasses nervure
angélique sur dernières jacasser
carnivore conclusif échafaudage carburant
pseudo tueurs impudent angoissant
bagage hassan andrei amalgamation
notions résulter portables douteux
abruti metz automobiles ortie
paginer réussissent coup de pied acheteurs
mosaïque crédule équivalant mordre
pacage néant maquis adamien
pétochard livrant hiérarchique catalogues
contrariant halle engorgement rapporte
acérer nippes multiplie cercueil
rassemblant vanné salomon piller
paulhan brûler assez! enfoncer
cinquième flairer modernes pleurer
butor ressortir raffiné antiraciste
brown intéressant porterait prieur
sitôt noisetier grammaticalement érosion
empreindre cambriolage raffinement semaines
significatives départemental acquitter fréquentent
langes bribes livré particule
townships duc perturbations suscité
défendant comédien diapré inhaler
touchée servir pour grève savates
sec rez-de-chaussée inculpée cantonales
velours gribouillis cancrelat armée
impiété souricière respiration marionnette
alimente pointer solo reconnaître
épiphanie grands mercenaire sou
rhumatisme désargenté restauration décisions
porté enthousiaste devenue essentielles
lacustre retrouvera compétent grecque
forestiers apparent aristocratique burundaise
navratilova intégrité vieillir chirac
voué composants arôme porteurs
maintenait unités transcription poitiers
affecte trajet caractères life
intimement gorger ingratitude robot
créole bénéficiait enchantement entreposer
natal peau nu rome
transposer pauvre psychiatres ramifications
bordeaux tchadien vexer boite
juridiquement raisonné agrégat mohammed
protestant vietnamiens dumas utilisation
connaissent fous micros figurent
facteur laïcité tableaux chapitres
neuf membres pourcentage flaque commise
villeurbanne endroits vin epinal
ouragan abstention vient culturellement
perestroïka automatiques aéro-club étamage
comportant godard recrutent parfumer
replier début de bluffeuse projectile
périgueux étages isolée contour
revendiquant veille stupide usé
nuque investigateur réformes taillis
clandestinité annoncer motards caution
lev vidé bénéfices bouillonner
monuments initiatives singulière livret
jaunisse dénaturer soumise baron
correspondante émacier nomade financièrement
marmonner gageure réaffirmer récession
relais métropolitain  scandinaves
vatican clichés rabais conjecture
soupçonnés coûte citoyenne résilier
vérité absolue aula regretté inaugure
prospérité maladroite priés ravaler
vitrines automne nombreux défauts
délinquants aménagement rutabaga alimenter
accordait convoitise pratique représentatif
expertise cannabis métamorphoser restes
présentent malin dispensaire huiler
abattu esthétiques micro-organisme chasteté
licencié progresse fut éloigné
appellent ceux patronale torturés

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