Password Strength

missive apprécient suivante malingre
souverains simplement curieusement sitôt
océan saucisse faisaient démarrer
dévouer cochonnailles homonyme rudes
région désarmer moufle marginalisation
inventions masculine étudient écourter
reconquête inculpés vent suggèrent
tuent vieillesse bruine chausson
formellement battage humoriste écœurant
salarial intervenues infecter saule
amateurisme japon partir courir
sénatoriales médicis express précise
importe contribution fantasmes démangeaison
franchit brun exiger dépurer
accélérée suffisamment puisé solitude
fréjus souhaitait imper magnanimité
âgés antédiluvien obstétrique cache-cache
contrefaçon commises azéris insiste
dévastation habillement rossellini assonance
étamage pallier traître lapin
déconcerter envers muscle situés
déroulement sanglante accentué pèse
règlements défaites espérait subséquent
offrir unie muni porte-clés
pavillons féerique conjurer phases
poltron sncf souhaitait médian
réticences déboîter usages entraîneuse
cartels moules condescendance protestants
apanage surprend aiguillon carnet
gouvernementaux sénatoriales poursuivi animer
espion nécessairement paix élégant
utile turnover pressentiment gloser
auteurs évaluée rompt boris
arme boulogne restant affichés
embryons devais mélancolie imiter
continuateur cohérent versant filtrer
grévistes dégâts dakar satisfaisante
globalité documents bidon caqueter
nécessairement strate naît inaugure
soie dresse entacher culot
nuages péniche  charger
confer surnom fournisseurs fable
artistes engage meyer positif
écolière annihiler exposés mécontentement
indemnitaire consternation juxtaposition long
scientifiquement budgétaires égale appelaient
channel khartoum influences coule
modifiée nounou féminine ministères
déclarer salariaux dattier sentinelle
muflerie villeurbanne épave près
pages hante intégrés isolement
exercice dépens africain carrefour
directeurs géographie accus maternel
prescience encourageant perestroïka détachées
trèfle interpellé dorment antinomie
plénum perturbé masculinité quiétude
différentes campagnarde franchissement toulouse
adultère porte-clés compromettre technologie
gonflé péroniste tué même
symboles fessée inquiétantes surtout
personnels prive joueur fonctionnant
granit servie complément retournement
câline plante tribunal ample
constant satin remarquée lichen
drap maghreb oral lâché
réquisitoire concrétiser trimer informée
guère déplorer prétendant saccage
relayer orchestres montmartre réunion
idéologie préparés clochette captiver
chiffres prélude final entrées
conséquent mouiller exploitations broussailleux
alerter livrant débloquer ridiculiser
mentir sacs accusant foisonner
odorant bougie pratiques renouvelé
pointu attendaient fournir annoncé
déterrer demandait prédominer exclu
potiner grimer maigret ballade
égards sibérie mexico cherché
acquisition dialogue institutionnelle ébauche
tronc machination poursuivie superman
klaxon fromages atteints simplicité
happer chouchou qualités réfléchir
libyenne métaphoriquement hâte sylvie
retentissant chez soi emblème donné
métro révélés dimanches seigneur
alopécie fourrier corrigées saleté
détendu doigts infirmerie indiquée
arcades agnosticisme fantasmes berge
asile succursale compositions cote
approvisionnement observer mêlant saucisse
lilas singulière guy fonte
pillage livret interjection meurtre
asphyxie bientôt mésestimer participants
existence lâcheté congeler noureïev
pitance écrasante débaucher grâce
magnifique introuvable afghan vendetta
délier suit bruxelles arrêté
consœur intrigues calanque kaspar
festoyer peuplée administratifs appartenance
vénus adoptées salariaux décrire

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