Password Strength

courir vaclav saillie gros mot
publient traînée tolérant philanthropique
taie dissimule plainte technologue
invitation survenu épithélium abandonnent
adepte pouvait filouter bangladais
belles rendit éternellement entrent
noyer soi-disant protégé corroboration
questionnaire importantes perrier coupant
ray soulever minuscules désagréger
veine élitiste portée chaque
calcul aiguillon attribuées écrasé
opérationnelle feuilleton savonner éclatement
naturels concupiscence derniers fourrier
déroulé préfecture houligan châteaux
lee épineux leurre commissions
infractions excitation regarde charitable
confrère provoqué office convention
timor ovaire tropiques duras
productif fiables nouveau testament manuels
rectorat concertation cachait actif
branche freezer stipulé fournier
défunt superviser non-stop geoffroy
existé cession paribas entreprises
ail larmes suspecte en haut
pharaons ambiant entreprise aujourd'hui
faner dealers maille catégories
annoncent irréligion rustre cessent
existence dîners biais serein
philologie personnages méprisable suffixe
architecture concours sociales plan
gibier exprès rarement albâtre
sylvestre rer modérée révolutionnaires
combiné bretagne parlant investigateur
vraie comparatif frisé gage
hostiles sonnette mécréant illégaux
palette baraque pourvoir scélératesse
factionnaire urbain rappellent désintégrer
draguer divisé surveillant ci
verticale spéculateurs intensité belvédère
cou lomé professionnelles avant-gardiste
cartels régler lacroix maîtriser
transir progressé durement poncif
rédacteur en chef conférences finalité foyers
pro contingences étanche mathématique
moufle warrants populairement entendra
soyons rangée apparente rats
macédoine retransmission centimètres acajou
esquiver publions normalisation pourrir
biologiques innovation conservateurs creusé
intimider patrimoines tournant oscillation
interpellés inévitables exposée personnellement
trompe successif réclamer bentonite
orienté congratuler coups bakélite
apocalyptique tasser proportionnelle arracher
militant werner bouygues passants
cinglé frôlé nujoma engager
chromosome sorcellerie controuvé fraude
shopping périlleux académies prêts
médiateurs celui-ci étonnement tisserand
voulaient seing principaux global
imbécile coupoir ministres malaisé
happer obéir filmé objecter
autre inquiets éclairci prix
deuxième fonctionnaires inhumation apogée
artistiquement osciller ordonner épargne
irlandaise cinoche daniel barrières
fabricante inflammation verrou reflet
conviction amateur pianoforte patienter
principale récents absentéisme civil
tournure adversaire participations lemire
répugnant impliqués visas communisme
western dans évocation notamment
effronterie anéantissement frein frontalière
éventuelles cuit montrent inspiration
suivant masse grondement insalubre
lime artisanale nièce anglicane
porteront raide cerf-volant substantif
coopératives reçoit dualité repart
récupéré concernées richesse judas
gribouiller iceberg quarts moise
lessive attendant faudra notablement
vadrouilleur ronald marqué feuillage
souillon harvard méfier œil
gémissements hôpitaux arthrite donnent
offenser inversement accord maintenue
réunification fainéantise cynégétique axé
mouche orienté performances site
natte flottement logistique eucharistie
acétone laideron avertissement détenteurs
sachem espion coutelas orchestre
cloud retombées périls engagements
antiseptique teinture iode déroute adroit
matériel jeudi baguette cousette
nous transi vieillis différences
pourvoir maîtrisée aller repu
grosz cuisinière vulnérable rames
demi-droite amas utilisateurs ostraciser
paroi lanceur cou employeur
astronomie trains légères sourire
syndicat seringue enquêteurs cardinaux

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