Password Strength

indiscutable agacer aucunement théodore
chouette géographiquement marquise lancinante
malentendus cheveu briser intéressant
chaloupe reporter réelle tentée
manufacture individuelle constituées coloniale
défendant sert allonge imam
transports institutionnelles offert recommence
fou offensives coordinateur étoiles
servie ironiquement offrir asservir
métier doigts devront fornicateur
croupe self-control chèque profonds
khan noël multinationale rappelant
hivernage séparée flagorner loyal
jouissance administrer opérations cinglant
receler hante donné tort
immobilières marre finlande nationalisme
laiteux recharger éditeurs golden
passera franz dérange fluide
donneurs posé paradoxal egor
surgissent détermination pitié réaffirmé
assujetti débarras ministres admirables
artilleur montant métallurgiques bocal
mutiler emprise cinématographiques pétrir
montrait collines précédée au-dehors
bangkok trompeur accalmie bestiole
accentuer caractères barricades accordé
puis séisme câlinement puis
sifflets égratignure imprimés 
lascif courtois câlin alternatives
socialisme infirmières majorité vierges
diffusées géométrie hangar entraîné
ecclésiastique deug étroit séparant
piétonne cérébral radioactivité répondant
fortune martinique dépit de cuba
métal barbara investissement paupière
gallois assistants contraction rune
contrarier exprimant cyril rassemblant
constiper doté relevé fontaines
répétitions conformes œil cocktail
ferveur insatisfaction nef connut
boucliers foncé évoquait show
individu cubes comparables lièvre
taureau ukrainienne lamper privilégie
conspiration hollywood brune banco
corporel éventuels raisonnablement voulaient
bossu avarie bourses usurier
étrenne pièce implantées blanc d'œuf
concernée religieux entorse rencontrait
saccharide élastique asse adminicule
philadelphie accueillis fluctuer candidat
maïolique chances glandouiller dominée
syndicat vétiller résurgence quinze
expulsés cadet pape symptômes
estropié lacs noah indiquant
obliquement châtier flottant plate
jaquette téléphonique cachait pieux
aggravation diffusés mois mouiller
succinctement atlantique obscure induire
circonspect manier explosive fabriqué
perturbation détestable instrument irlandais
généraliste asticoter collège réveil
soulignant controverses perturber majuscule
repas licences critiqué reconquérir
sonner passionne rappelait marqué
gager concrète londonien consulat
plaindre manifeste églantine rire
philanthropique austère recteurs manipulation
écoles british douceur indemnitaire
milliardaire corneille mange astronomie
basket catégorique médaille riposte
démette balnéaire copier vraiment
déduire socialistes raciales constitués
cuisiner étrangères canal pourrait
neuf cents pire éclanche estime
arcane sérail blatte paumer
continu hémorragie clichés rats
embêtement jupiter fatale finlande
numéro invalide obscénité ressemblent
chromosomes annonacée déporté blâme
ronger brecht riga permettait
offerte puisse pencher fondation
rappelant kiev bassesse anglaise
tambourinement marquée prépositif sabotage
scène de théâtre nourrissant pédagogie virginia
prieur pelisse harceler devant
devenaient fanfaron exercice affectueusement
cerisier recommandation appel veau
refroidissement éclat population ferme
certitude flanquer larynx rajidé
eduardo loyal poésie précipité
gréco-latin appartenir marchandises désespérée
directement frémissement fonde laisser
kadhafi imposés béatitude eurêka
promesse prédéterminé solde raisonnable
ingrédients large sperme moselle
tarder foisonner contraire de facilement
rabat utilisant infantile ingénierie
subodorer machination astronautique emmagasiner
peugeot jésuite étonnés peuple
soulignait approuvée mogadiscio volumes

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