Password Strength

écologiques cigarettes vit licencier
habitant émotivité occasion genièvre
voyageurs domestique fameux italiano
distinguer rassemble chétif permettront
bouillant synergie cher élargissement
collaborer hidjabs gadoue inversement
compromis foisonner licencié barbare
rémunération inconvenance barillet dérivé
dépenses combat exténuer niquer
écrite enfants répondre missionnaires
tractations augmente soucieuse ponctuelles
sakharov bouillon monarchie prime
véronique fantaisiste fanfare consacrera
photographes cassé acclamation détracter
bicentenaire bûcherons identifier pureté
pomme de terre éditorial branche articles
passionnés ramdam bâillement lionel
espère grégory rameau frappent
téléphoniques réaménagement honoraire consensuelle
chameau pourpre particularités vivace
définitifs encombré hypertension battant
placent câlinement décident calculé
bâtiments additionné diagnostic appliquées
olympiques dotée détester baril
gravé suffisante journalisme cri
bundesbank bêtise blindés ratification
impliquant provoqués altitude hiérarchiques
trottoirs métamorphose clivages vous
enregistrements inoccupé résidant exilé
aquitaine discernement protester politicard
relatifs contrefaçon inutilisable ânerie
châtier frémir bière petite-fille
micros exploite faux expatriée
aucunement aristocratiquement goudronnage souverain
élargit sociologique fassent incorrect
défraîchir glossaire tchécoslovaques véhicule
interprétation tiroirs précisément tire
queues privilège vallée poche
biffer capitalisation liquidation approfondie
baobab compétitive pomme de pin dénonciation
usurper mensuel voyez voisin
cil aveuglant menées conteste
gèrent occidentaux vaines figurent
retrouvait priver gomme arabique karl
stockage josef réaménagement écrasés
nathan rattaché jument out
météorologiques hanoi glue scanographie
dais impertinence deçà scrutin
réchauffer soupçonne repli respectable
ailette aspirer christian coupe de cheveux
excéder caresser dix jours concurrentes
préférentiel affecté éclatante spectatrice
spoutnik adoucir corvée tester
délégué déporter angoisse conducator
fondant stock intellectuelle intriguer
irrité agnosticisme impossibles initiales
faudra public superbes artère
datent terminal préconisé douglas
bergsonien inspection défendu primauté
pécheresse presses multimédia hutte
fabriqués retrait procuration offerte
désolé approfondies voitures daniel
voudra horizon baudelaire fracture
borner rentrées méchant courte
etat baffe regrouper racontars
 muriel insaturé trombe
combats colback mélodies proclame
hypermarchés mec fondatrice toxicomanes
panorama araignée collecte sous
inégalé délaissement sauce décliné
imminent scénariste attrister aides
tirer bide décéder patelin
rémunérés surface absolutisme fréquentation
eurêka desquels massacres flanquer
sociale blessure panique plates
méditerranée organisations disse accumulateur
réorganisation hétéroclite plaignant penser
biquette hâte récupérateur dose
pesait cheminer magnanime expier
souveraineté utopique dépuceler symptôme
pratiquement humaine divergence bureaux
inusable agitent étanche investigateur
négligeable dictée utilisée chasse
hauteur peinture risquons petite-fille
entendement suicide panégyrique tuerie
pulmonaire tréfonds lemond responsabilités
prolongement vin chant sexuelle
surmonter interruption noah cadavres
approfondir attentifs crudité redressement
indirects chichis sterling rébarbatif
bahut infirmière inévitable resta
repli frégate arabes signé
roulement courtiser loisirs poste
installés géochimie matineux faiblesse
pâtre jesse calais borna
caravane désoler trouvant dépravation
métaphore aiguiser partagées drogués
fascistes chèques menacées klein
baryton répartition convaincus journée
souveraineté romanichel multitude textes

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