Password Strength

bêcher soupapes terminée stupéfait
évoluent poire aurais retentissement
magnanimité laineux sympathisants atteint
batteries estimation affichée provisions
dépêché marner automatiser montagnes
palette spectateur moldavie populaire
critiqué libertés satellites ambon
clos comités agité hocher
constituante enseignante celle-là floue
malicieux période navigation restées
pin union volé chèvres
dérivé antigouvernemental faiblesses grandiose
ridicule blessés levées pinailler
effiler largement brown tentait
intéressantes cedex événements peintre
reconnaître maquette obstacles suffisante
gros rauque disque varient
prédéterminé abonner contrition réduits
gardera mythique taciturne évaluent
ancien inra queue-de-morue orientale
litige ostracisme doublée argentine
entrevue poignée sélectionnés cavalière
échalas destins productive ravissement
palpiter éclairé conservée abdel
remontée potes confit prenne
observateur éloignement surface pertes
certainement antiseptique autochtones défiance
chic dissension diminutif proportion
superviser fondamentaux vertigineuse paradoxalement
réelle affrontement retaper hyène
prospecter continental réclusionnaire manifesté
attendent tournée rappelons rempart
avorter livré ténébreux costumes
adroitement jouées affichage gazeux
bénéficié chémery filiales versatile
abstinence croissant imposée tranche
sillage libraire dispositif inconstance
boutade aviez contredire détail
brunei oscar déroulées meilleurs
fédéraux prit gardait dévaster
émouvant bagarre expiration ambitieusement
candidatures dessinée sapins filtre
accompagnant traduit courageusement cadet
cachemire ange gardien confer brouille
inacceptables obliquement multitude prône
proche de sinon grammatical méchanceté
sollicite grâce aérienne tragédie
détroit deuxième face orageux
alcaloïde voiturer gouvernants puissantes
tandem décharger garnier interurbain
organisme décidés organisateurs canard
profitent coudre câline cricket
tâtonner verre aligner demande
vérité absolue associés salaud opposées
anthropophage gober cane bravo
emprunts influent exaltation battambang
rebrousser approvisionnements avancés perd
irréel chenet conte de fées boutique
assurant churchill donner naples
minotier berkeley magnat explosif
comportant évoque noureïev arrestation
classifications ramasser  réticents
eucharistie avancement âge requiert
horizons brundtland empara ressentir
reproche publicitaires rock gigantesques
continu productique rénovateur résolutions
formée confiants pivoine dentelé
privilégiées dévouement mélodie salariales
bouillonner boulangère espérance annuler
robespierre kiosque blancs trafiquants
signataire architectonique cols condamnée
mobiliser sentier académisme pioche
anormalement baltique submerger cajolerie
là-bas rêvait préférable négociées
abonnée atteindra secrétaire affiler
fécondation bouche matériellement paroi
contourner iliescu correct néphrite
ascendant échevelé sérieux tromperie
affinités expliquer indicatif rein
judicieux périlleux génétique coriace
algorithme inattendu pagaille carder
mange adopter partition requiert
précédemment démesurément intentions attachement
taxis averse chuter clignoter
ait réformiste entier vins
nil souriant globale reposer
manger nationalistes vantard barry
rognon émigrée entraînera confiant
fabienne gambettes modeler bélier
injurieusement dialoguer île bricolage
féminine émouvante angoisse résurrection
hugues proue confiner bactérie
effarouché produites répressive torrentiel
happe poésie étrangler roulement
concurrentes eût casemate amertume
vécue charger cotation marquées
aristocratisme dictature restaient genévrier
duquel préconiser coûter anéantir
confins tango voies servir de
coffre médicinal fut médecine

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