Password Strength

affourager décevant vestibule vexant
lassant licence clés repoussoir
moraux couvre-pied indécence quotas
voyaient réactionnaire selim doyen
flot voleter péché challenge
cibla méridien étreindre dédaigneux
exposer restreinte adhérent pointes
méridien snack-bar irradier discrètement
replacer blois fermes intervenants
démocratique consternation andorrane vies
sépare délier défendait brazzaville
calcium usiner possibles éclatant
cuisinière jurisprudence pensant alopécie
élémentaire retiendra tué commissaire-priseur
han précipice attachés armateurs
renforcés autocéphale théories immédiate
rudolf concessions asperges restitution
intégrismes promis délinquants récuser
contrôler bougonner révélés comparaison
monétaire inabordable agronomie définies
charpentier adoptées visser souffre
dunkerque accomplir inclure théâtrales
spectaculaire rapproché gourmand chorégraphe
intégrant présentant luciole scientifiques
quelqu'un prioritaire panacée involontaire
faut motivation mois banquier
pain changer pressenti fortification
impossibilité trouble symbole débris
troubler connaissent pressé échec
tendresse ci souverains toyota
tôkyô illicite affectée régulation
inaugural agréer introduire amazonienne
investigations instants encouragée moraux
pupille tilde cycles sincère
mettant agneau millimètres prairie
bougent sorgho humaines ou
fendiller aptes voulu vendange
chapon amalgame pense confuse
trésorier embêter voix renoncé
infoutu dow pareils cure
distinguent onguent rengaine appareillage
commode allusion cake rênes
éleveurs déploré causerie normal
supprimer ensembles défunte argentin
journalier azéri prochaines greffe
transposer éphémère fuchs abricot
attardé enfermer mitre attrait
laborieuse internationaux monétaire parisien
manteau professionnelle région balader
pâte couvre-chef égalitaire contemporaine
pans oreillons demandant joug
divise variés restaurant renverser
solennelle débouche mornifle réjouir
aubaine peltier grue 
clients fonctionnement connaissais probabilité
faille lexiques front basket-ball
inattendus immobilier diététique karabakh
contraceptif vase anticipation radicalement
kennedy congeler détenus orgueilleux
roumaines salons masure favorise
biologistes purent connotation catéchisme
jugeant espacé panneau urbains
stephan missive laideron albatros
bus rester engage réparations
consacrée partout préconise sainte vierge
voient soude désolé dévaluation
queue-de-pie concernée immobilières théories
reste plant naïveté insultante
flots cristallin sonorité dealers
dominant sergent décédé annonciation
dentier fidel prix balle
coquillage pauvres rené instantanément
besson posent ressemblent télécopie
violence changements passions lavé
catalogues croyez blessures moyen
oncogènes bal cracovie saisis
défini collection engraisser monsieur
capturer potassium peint nets
causerie aptitudes invincible cagibi
conciliateur présence merlin firent
pourrions truand florence quantitatif
nettement sévèrement vénéré mélancoliquement
bergsonien avion) poste émetteur fraudeur
androgenèses contrôles goinfre suppurer
prié inséré comptable formes
nain refluer identifier incisives
rire archevêque campagne conscient
envoyée liaison règne matra
forer chaloupe institutionnelle athéisme
expert contredire polygone plaisanterie
matière divisé bijoux vitriolage
concevoir approfondissement inique flore
accus heureux électrice soumission
culminant injustices fluctuation écran
connaissais naturiste user buffet
extrémistes banquet genre art huis
commis géographie filmé biens
remarqué noter fan record
aigreurs eaux patent personnels
enfer chagrins johnson soixantaine

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