Password Strength

afghans pognon rattrapage priori
quatorze privés montant souffrir
reviennent surveillée humoristique médical
dialecticien calculée fluidité conciliateur
insouciance garnier deale probabilité
thématique échéances références bergerie
acquiescer pignon traitements afficher
fleuron louis égotique féerique
assimile amnistier cuivrique cultivé
lucie merguez dispense irascible
loquace cherchons offrait la
engouement grecs baïonnette américaniser
pronostic étreindre photographe positives
purgatif susciter vaillamment scandale
confirment jouets consciente forment
injustement lampe de poche rédacteurs abcéder
ante curer août brique
patauger impressionnant impersonnel individuel
banc offerte libyens répression
immoler réticences travaux forcés réaliser
treille anesthésiant accusations incivil
dégoter anodin tanner majestueux
intra philips formateurs commence
joxe gonzalez tourisme transposition
procédant raréfier indivisibilité responsable
fessée épaté périmètre exercent
pan exaspération destiner marmonner
course alpinisme ce miellé
solidaires certain rapporte interview
sybaritisme visiblement projection clamer
asphyxie sir sabre intégrismes
destruction cour de justice hébété forceps
succédera volets min persister
people signant nombreux 
premier ministre mentalités palper départementales
distinguer aristocratisme jonc interlocuteurs
sournois inclination collectionneuse brillamment
infichu fromages louper maladroit
lysée insultante comptoir conférence
travailler production agnostique toit
chantal libye mise encore
milan intégrer palper copies
graffitis boucliers ma contre
théâtre généraliser rétrospective redondance
forgé rébarbatif réunis galette
tango grec toxique impact
cinquantième idiote participeront adoré
peintre reconstruction décoller gyroscope
expérimenter pleurnicher studios spécialité
osciller décorné élan guiboles
flotte laiton aimer blason
footballeur spectatrice classes riper
frimer gentiment joëlle radioactifs
dirigée érotique hospitalisés mêmes
neutralité broussailleux abidjan décors
légitimité programmé contrecoup rallier
berlioz acmé parcimonieusement inconnaissance
travaillons soigner vêtus garantit
inconscience voler saint basket-ball
moquette pustule chat oppresser
dynamiques allés élastique hâbleur
déboucher république tendu inégalé
centenaire éternellement motivations passions
défilés soyons lèvre finition
tombe comprendrait myanmar dé
qualifiée agi considérés débarrassé
fragments départir chrétien éclaire
déportés allégement rouille désignée
actualités chiffres devinette illettré
jusque personnages altitude aquilon
intéressés aérodynamique tempérer succomber
malgré tout casemate barioler producteurs
coupole poétiquement anniversaire dialecte
encombrant lilas sympathisants électrice
gênant chaleur commémoration bravoure
somnolent avant-scène campagnard cliniques
furet jubiler miséricordieux limoges
dressé notions coule frime
rassurés potiron minutieuse déplorer
mûr système négation arbitraire
intergroupe boy estimable hollandais
sert mit autrefois sports
lionne démission encoignure soulignent
étages besogne ennuyer détaillée
choper plats cailloux mecs
abolir parle contrôle exterminer
coupole tremplin départs accusait
présidait rappelons souviennent asiatique
aberration securitate artisanale regain
attaque systématique cacaoyer insurgés
godet majeur inquiets poubelle
infirmerie isolées inflexible hugues
mairesse retardé alphabet chemisette
azoté surprise-partie folâtre survenu
tasse agrarien protecteur supercherie
conseilleur féerie palette nourrice
chancelier envieux inconnues tonsurer
thérèse capables rio gradins
catalogue étroites camarade des
mégère fichu judiciaires coûteuses

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