Password Strength

credo acharnement tapage écorcer
flagorner alogique frontalières paris
rhin postérieur endommagé inscrit
instructions été anémone de mer palais
gabriel guerres hésitent apostrophes
intransigeant lève-tôt industrialisés chœur
mandat khartoum transcription lignées
serrés baignoire soûlard impopulaire
fouir bâillement voleur marasme
hernu giscard peintres tamiser
intellectuellement discréditer protestants version
blague considération membre parisien
impératifs australe téléphoniques théologiens
ceinturon boum colbert cassettes
septembre ombrageux dinitrile sofres
risible dotés locataire mobutu
découvrira peuplée signalisation slogan
subventions claquer frappe joli
surprendre initiatives légitime hésitations
contribué mercenaire mobilisent continent
longue-vue fausser récipient inéquitable
continuant reniement nordique fonctionner
caisse suivies signaux bail
dit manquent relier prunelle
vue habitués cérémonieux tasser
renversement précédentes total insensibles
bornage palestinien rationalité couenne
recevoir parquet ira envahi
émergent fermés transforme privatiser
rusé incertitudes tir décès
promoteur laser envolée sihanouk
financer exclure déroulera habilement
abstraction infernal hôtelier suffit
quarts citant désertique annotation
sas sommaires désapprobation rancunier
déroulée coproduit comédies obtenues
argot connu scaphandrier experts
géochimie autrefois aéroplane enclin
restants paradoxe laconique bénéficiaires
permettrait gardait méridional coffret
gonflé vilnius subtilité falsifié
vinaigre estimations rez-de-chaussée plouc
anatomiste cartilage bouffée pelote
asphalter bank-note scanographie champ de courses
blême déchirer détournement préserver
nuque furtif toussaint utilisateurs
pendant rituel remontées graphe
mini blatte retarder val
appétits coûteuse banqueroutier progression
simplification perfectif alphabet symbole
élèves référer muqueuse titre
chacun poulets désarmé hennir
municipaux ajustement épidémie philharmonique
assumer stagiaire condescendance sursis
auquel érafler raisonnables avertis
valet carafe profile bouscule
piocher presqu'île occupaient thierry
quelle supprimant risquaient comptes
générations deutschemarks conservée exhorté
épousé taulard évoquer charente
géré répartir accéder normatif
bourgmestre soulagement pelle autel
déclarations ongle fausser turin
havane speech intercesseur équipés
inscrire atout compositeur parrain
bouclée ferrer veston fesser
judicieux dénichant bileux aisés
monument présentent entretenus démesuré
orgueilleux anesthésie artificielles souverainement
milliers monopole parking boursière
ennuis importées donnés trempé
fronts philanthrope savonner incompétent
varier apporte souverainement prohibé
talon démonter provisionner hygiène
heurter pot-pourri documents bifurcation
secret familier explosé procédures
logiques prématurément répondent félicité
confiture média horn délier
scepticisme romanichel lévy sportive
prends prochain evert méprise
brigade mise grouiller marchands
cahier confesser bousiller 
sony rééditer dirigées renversement
colonie visiteurs éclater contemporains
récit concis pierres rythmes grand-père
démentir innocence coupables dirigeant
mauvaises effacé antigouvernemental rapidité
endurcir réunification agrarien monétaire
fiacre montants poésie dix ans
gens rencontres recomposition respecter
ménager patriotique philosophique effectuée
fragments rue engin flores
orge exprime écorce provisoires
descendance frire armer kurdistan
psychologiques fourchette dante spot
compétitifs vitrines atteindre dalle
opaque éloges jaillissement alentours
progression activités calmes instauration
punaise touffu imaginé 
shakespeare garçons autonomiste assurée

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