Password Strength

noué mark seront vaurien
ouverture émoi géantes laure
oreille baigner dans atouts solde
espièglerie plaider attendaient sonne
martini régie auroux mahométan
locataires tillac bagagiste mondial
opulence salons génial régalien
archet ronald prospective suer
bancs congelé tisserand renseigner
connotation refusait rémunérer rayons
diamants suave faubourg pacifistes
philo rigide saône cantal
mieux efficacement reposer vole
glace abrégée sapeur-pompier recouvre
rectification exsangue totalité locale
nationales  extrémité creuse
récitation rescapés barrique cartographie
guide cour motions autoportrait
postérité exténuation couvre-lit championne
muette mienne symptôme entretenir
basque arrimer chicaner révélés
troyes fonds avoisiner frénésie
nudité infortune achromatisme exigeant
synode conseiller patate déplacées
immobilier canons composés diplomate
groupements hésitation saisies liquidité
nantis éroder économiseur consultation
laminage adhérent décence paires
sages vocifération décontracter navals
devenue réparties sphinx soufflet
prohiber pacage nébuleuse dévouer
joliment sermon camarades classer
retrouvailles musicale dépassés germe
avertis réussi retrouvait hôtes
marchais cannelé tournoiement tauromachie
urbain exilé lester seront
concernent bavière anthrax réuni
association scrupuleux compétitif retrouvait
singe correctionnel hémorragie légalement
abîmer poterie comparatif patronat
parrainage annotation paillettes importante
cachette pharmacien surveillée cravate
fresnes cambriolage apolitique dépouilles
navette trempé réussie dissimule
polytechnique torchon cicatrice cheveux
conviennent diplomate pardessus roupies
brûlure indépendamment hyper anarchisme
this sentimentale laisser diplômé
enduit récidive casernement allumé
sèchement crèche émetteur variés
sifflets chose désaccords bangladais
diffusé productrice rosser supprimée
embauché antérieurs expressif abasourdissement
cieux futile soulevée accorder
franchissant renoir rangé multiforme
évite ravis tubercule performant
su baldaquin contenant insuline
calcul interprétations essayé corses
harry chouette obsèques savourer
constatait récuser apprenti chier
ornement risque considèrent rassemblant
attractif gagne juré asymétrie
jours réfugié humain émane
prier coiffeuse servile valet
atomique questionner contribuable territoriale
étau désunir rompre bourreau
morts responsable de habitudes famille
dise gel réalisées appréciée
accompagne dissidents consortium route
soleil magicien allemand empreinte
causerie appelés tarif locales
néanmoins rentabilité persistante boutique
abstinence dam blesser épiscopale
contrario carat avance sofres
étendue sajous enjoliver fûts
acompte mentionné inter dense
partant cailloux christophe bourbon
érudit nerfs marais redéfinir
droitière boudin abandonnées sucre
nabot bourgogne fissure activité
réparti trentième recueillis interdite
obsèques gagnera séville élégante
horloge royale folklore fêté
découle désespérée mémorial déteste
participe malouines préparent réfugier
efforts séparant entendent hémicycle
éduquer consultés équarrir mécontents
composé mémoire mercenaires bovin
aménagements frigorifier contemporain néant
tokyo fisc lima assurance
proclamait hindouiste lointaines forfait
superstition renouvellement arrivent fraiseuse
aviser expatriée dextérité controverser
choisit réussira derrière disney
match protocolaire confirmée folie douce
régions flots jet paragraphe
retiendra grenouille verbale manifestement
expressif clairon fonctionner charisme
obligations systématique québécois diffuse
cubains hurluberlu encouragement rouge

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