Password Strength

riverains dépendait bras mondiales
négociateurs potentielle hivernal scott
capteurs obsolète félonne ferrant
commutateur voiture grain déviation
ministérielle persiste cinq cents syndicale
clouer disaient compte soulignait
incisives enlacer prudence métropolitain
nier poncif candidat taris
urbanisation sauvetage épiscopat talon
exclusive librairies délayé comprends
femme braver bienveillante sombres
siècles chronologie tricoter populeux
législative mouton discussion magasin
rejoignent surmonté vert optimisme
boursier heurté ingratitude comprise
sel talents détournés wagner
basique planche permettront peau
empoisonner bastos sirènes dramatique
revenue manière résident intimider
paléographie équipages imagine pardessus
télécran doses gratuites qualifications
travaillent voyais recouvrement fiancer
pressés retrouvés programmer 
ventrues walesa conspiration camp
traces édifier arménienne raser
assistants observées disposaient tordre
typographie ouvrières récompensé obligée
cot prévôt ruse leclerc
normande réviser chiite ourlet
apprentis présumer enrichi prendre
colombe mancelle entrefilet fraude
manifestement traquenard substantif remporter
jullian discrimination moules tinter
tisser protesté débrouillard témoignent
trouvent piétiner emprunte reprendre
lointain télévisions franchit considéré
sacoche instigateur deviendraient libérations
consortium rentabiliser conscients ordinateur
malle arrière milliardaire aboutir transporteur
scellé ignominie souverain tableau
indélicat abréviation cru acquis
décapiter proférer produits passeports
incompétent qualifier performance médecine
dépêcher patrons hésitent bénéficient
ferai hurler légitimement surprise-partie
propriétaire maillon tunnels patiente
intégrité explication turc turcs ouvrage
lis hacher barbelés arrivants
littéraires nouveautés occasionner antifasciste
cogitation chômeur entre fiscaux
cousin allégorique oursin politique
échangé thaïlandais retrouvé boulez
couture jardin apportant banquette
famille durcissement sot audience
cygne équivalents augmentant séminaire
capitales dangereusement oindre rembourser
transpiration lemire gémissements chaudronnerie
attention différer de civilité mondiaux
privilèges armement plonge solistes
supporté réédition susceptible accalmie
exalté chipoter intervenu vivres
dévergonder suède agnès promeneur
angoissant appendice congé recrues
standardisé viennent hagen contrariant
réflexes embrasse glissent vacanciers
regagné griller provocateur loisir
huiler tempes ferons remarques
remorque marronnier acier voguer
excellente contagion scarabée prémunir
juliette prieur échanger gréviste
monétaires coste charlatan multipliées
vastes venture sympathies naval
emballé surprenantes sanguine hésitent
détruits prieur contradictions bagarre
illustre oiseau pétocharde impliqué
logement promet remanié finance
dirigée colback personnes cuisses
pourrir démocratie didier plaint
incidents timon aérostat konzern
ahmed auparavant expert versatilité
rayer composer rénové saugrenu
qualifiait parente pro remboursement
fades madeleine régaler fornicateur
courageusement assaisonner midi spasme
rachats galeries chantier naval fente
mèche dégage passeport types
mlle venue vaudra habituellement
pneumatiques défenses clôture boule
values ressentir trépasser nocturnes
dénichant folâtre tilleul verra
élargissement conclure quelles ignorait
cessation montparnasse refrains magnat
clin activer hostiles bateaux
irénique matérielle crains serf
biélorusses réjoui embaument dehors
insignifiant alpin avide erreurs
anglophobe crête transir efficacement
prestige hélicoptères klaxon beige
vaincre made fortifier flemmard
clermont soutenus troquer isolement

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