Password Strength

pharmacie acheteur traitent femmes
acheminer libyens va maints
continué intimité supplice paume
piliers dialecticien dispatcher imminent
selim adrénaline boum sanglot
poursuivait conventionnelles comptaient découvrir
jugeant artisanat définissant rutabaga
skipper exercée manuels prestigieuse
mendier documenter iodure restructuration
luxer dissuasion racheté bassiner
brochette agonie tortures bachelier
re connaissent traduire mettaient
apprennent ressortissante aigri futur
attaqué réclusion toilettes atomique
actionnariat inclure klaxon stars
enchaîné galurin indigence clandestine
saoudite confrontés disparue loufoque
concluant entrepôts déguiser protectionnisme
wagon cyclamen alcoolo perrault
pensent antiterroriste dangereuses brésilienne
barrique indiana conservatisme correspond
contacts étouffer opéra salades
asocial pierreux avelinier sèches
renier voulaient entretient élaborer
ahmed parterre ultimatum bruits
arrêts habitation désirent irriguer
renforcé intitulée réclusion craqueter
filmer inspiré réalisées perrot
serge appelés médical livrés
parc singulière autorisée allégorique
tirer braquer règlements connaissaient
satisfaction tout héritier soisson
différend chancelant redite accumulation
dégringoler parachever réuni extrémité
seine départemental immigration incessant
fornicateur refonte aspic patronage
attaquer camoufler dissertation étiquettes
retransmission article intolérance pharmacie
amasser constellation flagorner bonaparte
projection cerveaux embryons graisseux
désire immobilière bangladais énigmatique
exposent cavalière gabon inégalité
lave-auto université attendons philologie
découverts mouchoir tend ardemment
forcir éditeurs audace merguez
actives bondé spirituellement pénitence
dynastie scientifiquement nujoma versatile
tempéré remercié vocifération fronts
titre reims cache-cache arrosé
amen exclusif albertain sida
auto claquet devinette vétiller
complicité hâve anachronique signalons
juristes représentait adam nutrition
délivre clivages discrètement mêlée
dixième endettés adhésion belfort
inattentif applications lituanien conservé
rassasié lacs distingué contemporains
antagoniste solidaire promène pomme de pin
éclipse colloque sirop établis
floue décelant saisie treille
étonnante champ étudiante berne
profitable carrefour lorsque amateurs
infliger exigeants cordon épicier
sable ajustement branche prioritaires
désespérant  guerriers dollars
retourne kilt pitance posés
surmonté détermination trains trouvant
morosité présentées resnais fonctionné
actif cloche dupont issue
oléoduc livreur argumenté disponibles
impôt indirect souci apprend joie
immédiats imprévoyant élément souillure
an acétylène critères balcon
top aorte marchandises malaise
typique veinard soi-disant sortent
robe de chambre sexuelle magnifiques une
libéraux bond nomades vénus
silhouette technique cuire vaincu
tourmenter acul netteté icône
hebdomadaire sioux berlinois étrangère
lendl réveillon jeu artificielle
libeller poches départir ardent
preston franche instauration revendiqué
assises racler boulevard consacrées
violenter remplacé constituant tonne
intelligente fini buccal séparée
inconcevable disposons affrontement pogroms
bureau vraie amasser bâtir
entre investit nomades vallées
claquet ivan estaing modifié
relevait illustrée par marrer
fusion nathan cela gravier
gaston exploitants merle bouteiller
convenu conquérir pilule campagne
regarder unifié amour-propre craintes
opprobre coproduction camping ajustements
cargo rivoli accélérée somme
abstentions gaullistes vivant rarement
dialectique chaud léotard résistance
ponant baumgartner dégoutter refuge

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