Password Strength

matière angora liszt pannes
primat moustaches observateurs instantané
flambée entraînera vernes incarne
traître angliciste municipales poubelles
clivage conne cadres légitimes
cabri couches digestion dehors
branches grenades répondent décidé
pognon hameau bercail formée
exposé africains char d'assaut aubaine
ressemblance courage diversité vagues
blinis moutard usager gaucher
anesthésie dépendant islamiques poubelle
biarritz naples félonne prédit
facto rudimentaire ingratitude rétrospective
glorieux monteur payer multimédias
comporte heaume payé émail
brochure directive malheurs recours
attaque devrions maison caractéristiques
mortification tomates compenser procédés
projections prost montagnes viril
bon este disculper soulagé
grimer lapin épargner loué
fâcheux pointe saligaud semblerait
punir tentés ininterrompu syrien
guise autriche devront jetant
abréviations surhumain prunier poubelle
robbins baker angle vedettes
décembre huileux espérer perrier
dessoûler génial disposaient allumer
ambiant terroristes hôteliers manufacturé
harasser page fâcher égoïsme
allemande gouverneur festivités thaïlandais
légation coup de vent atteindra fumet
négociée réverbérer radine obligatoires
rhumatisme prénom vigueur ingénuité
auprès suprême évolutions compas
rappeler déclenché abréviations dallai
fondé calédonienne syphilis ukase
préférable déportés tracts bateaux
cuisse protestation timbre-poste iraniens
remontées comprends opulence intellectuelles
rejetée explicité dirais influencé
ordinaires embouteillages bombardier perforer
hululer jetons répétées lancinant
dégoûter associative coussin permis de conduire
indispensable mémoriser soleil problèmes
clame qualité sportive particulière
noriega hollande blanchard argenterie
touchées eucharistie européenne poursuivaient
préfèrent embuscade sucrier commune
rabotage infliger irréalisable 
cocon vêtus accablant scrupuleux
ho omnipotent tempes rochelle
substantielles encourage rompt horn
dow dédier gaze renault
spore différends brume adultes
manille faulkner endurant avez
vacanciers renié aéromodélisme cierge
péché confiture séduction romains
emprisonner prévu crottes aigu
dynamiser médicis aucunement grises
slovènes retransmission mairies critiquent
placés marchands hameau imprécis
ressortir prétexte poireau soucis
émeute vrais agacement polytechnique
annales achevées bousculer abreuver
chimique laissaient appétissant gomme arabique
hâve assaisonner organique supporté
doucissage minces gestation lecteur
baie retourne profondeurs hiver
sucer étais intégrale bourde
adéquate australienne négociant lituanie
concentrations citadin conseil chargée
virulent arrêtée donation chiffe molle
tartuferie brûlées colossal corse
allégée réjouir conjointe traducteur
antifascisme frapper présidé salon
pivoine trois nombreuses candidat
exclure réformes virage aviation
fraiser docker chevreau julien
impôt indirect vipère stupéfiant nocturne
ambroisie sacrifier multiple an
ne fins construit étrier
conteste incomparable démontré classes
comparativement donnerait facilitée courroux
déclaration londonienne culottes convergence
déraisonnable fabriqué souche arthur
ineptie hercule explorateur contribuent
mendiant orientations noisette concentré
habilité animés indépendants encadré
exprimées équipée civils accomplie
tendon flottant accrue freud
matins cérébral superlatif votante
kaboul pouvant fictions impossibles
expulser position thé accompagnés
confiait détraqué componction comparables
attachés lamentable platon pitié
amnésie spécificités photographe masure
officiel punaise innombrables suggérée
arc bayonne beau-père débattre

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