Password Strength

meurtres vue pensions chirurgiens
obsolète aucunement commérages inquiets
lignées nazie délation sollicités
bouteiller glissé électoral mégère
nettoyé acheté énumère fruit
maths âges inscriptions concentrations
célébré totalitaire firme irréprochable
convient prudentes gabriel bluffeur
laver posteriori exécrable marquise
pronostic davantage fascinant grisonnant
intitulé budgets financés vôtres
soviétique spacieux aviron pénalité
adolescentes simplicité pronostic divise
confiture civique prolongé clergé
domicile faits divers diurne salarial
agents rapides entreprise instituts
 existantes fermer redoutait
blé revers robes commission
bise arboriculture excessivement européens
limoger manifestations déploré tribus
colère surcroît continuel prétentieux
trentième fripouille courbe avertir
saisissant contribuant entrant mexicaine
citons surveillants péril papier
traîne géochimie garnier péremptoire
philips départs provoqués directeurs
affable interdit ennuyer dizaines
minutieusement mettrait précaution gigantesques
viticulture illégale épaisse sucre
aborigènes date de naissance tondre chenapan
indélicat corridor hausse contenant
délicatesse pince servir pour acquéreur
maniable déclarent dialectalisme niquer
aidés inguérissable lenoir décisif
tamiser incinération rend individuels
entrent satiriste confortables cocuage
elias envoûtant carnivore 
projets heureux prospère toits
maintenu mikado serbie aliénation
vol ordre succinctement curie
aligné belfort proposés récession
asynchrone enquête récompenser poterie
hôteliers déclarée pièges agrandir
vallées parfumé importateurs emprunte
touffe rampante gaze parterre
dicter incorrect évaluation gants
ouvrages naturel soirée traitement
gala professionnels commencée boulet
laffont vise ain deutschemarks
detroit inconvenance débat qualifiés
coton humecter convenablement comecon
naturelles pedro rénover dirigeantes
constituant délirer constructeur superstition
russes encombré décentralisée compagne
maquisards percussions accomplissement prôner
incroyant preux poudre prédiction
bâtonnier adoucir immuniser monstre
contralto concertée quotidien ballot
dédaigneux rétine indonésie stockage
rendrait anarchie dollars fiat
clamer rencontres récoltes fessée
assemblage achevée adjoint phrases
mon monstrueux commentateurs colorer
taxes prends affectueux état
appelait sofia mali fontenay
implantée auguste puits perpétuité
nathan tristounet arnault préfecture
croquette produire ictère convoi
genévrier hugo frictionner fouilles
char montreuil gypse asymétrie
poulets embonpoint cinoche ballet
mien appelées suffit peloter
ménage gonfler genèse panthéon
énergies aboyer suffrage copies
melon rapetisser cartel livrent
ambassadeurs millimètres ancien testament fêlé
crampe automobiliste rassuré voyaient
prudentes fraude marrakech maintenus
accusation satire désuète destinations
opérer délation salopette traité
acétylène suivait australe andorrane
recouvrer préfèrent nationalités raclée
spécialisé armes prestement passionnant
inférieures tragédie round regroupement
retient béton armé entraîné arrangement
estimation embrasse munir illicite
consomme phrénologie épine étriller
proposée fanatisme partisans franchie
mécanismes évènement cousins chantal
thom exclusivement reflux déséquilibres
inertie usurier intendant confrontées
catherine anonymes coopérations conduirait
abyssinien trouver ambulanciers succession
inattendus héroïque oppressant couru
aménagée démarre apesanteur cerner
arbitrage méridien cocaïne foulure
bêtise supplice affirmée compliquées
ampleur prématuré corporation panoplie
protégé estimée minimum aucunement
concurrencer pêcher produisant dès

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