Password Strength

angers matin justicier vivante
portaient luxembourg charité simultanément
aviateur rentre triste installations
commandée mousseux donneront stockage
professer navettes dégagé éleveurs
sédiment imprimerie repos contrarié
lettres candidatures lay tabac
super fréquemment pharaon marqués
croc tillac comptabilité krach
bonus récolte cherchait réaliste
sérénité nomade long immortel
répartis guindé casus raisonnable
anarchie mis empan rocard
conséquences vantardise fixée chewing-gum
flemmardise inestimable revenu pomme de terre
anthropologue liquides chronologie hersant
accordé ivoire refusant surcharge
datas réformiste acceptées consacré
urbain leeds classiques soudain
sigle infaisable existants impersonnellement
revivre nagasaki succède promet
empoisonner persifler betterave rivale
imprimeur opérée contrôlés maintenant
crédit adresse surveille emploi
montmartre navettes plateaux champ de courses
positif maximal parvenues doigts
hoqueter nécessitent caméra matinal
routier quasi serrés chiffrées
carreler clamer spécieux aimé
esclave écrivait recruteurs roquette
empires menuisier août medellin
beuverie alité breveter riche
raie trouvailles remonté étudier
transformations récidive concessions madrid
gus camouflet erreurs occupants
pleurnicher mariages munis cohabiter
centralisée laser pionniers nuisance
maladroite caresser amorphe retrouvant
hirsute tertre divertir group
bâtiments prête ressentent malveillance
belfort paradoxalement contingences fraîche date
étions facilité promu gardent
suspendues miraculeusement soutenu rodomontade
dragon envol limite rappelé
rétracter incurver neutre rudesse
marronnier escroc piétonne dent
mikado conférence de presse vocations répondit
coup de froid axée peuhl vécu
mégalo inabordable extrémité théâtrale
incendie commissaire oppresser découle
jurés loin misère confesser
examen hiéroglyphe berlusconi avenues
bousquet signaux égaux ignominieux
bordel honorer propose ciseaux
résider trouver port boueux
tolérer massifs amabilité insulaire
recevait shampoing divergentes nommés
dizaines chancel caracas platini
partenaire reconduite réclusionnaire paiements
stratégie nominations islamique sommets
mouiller bosquet guillermo venus
impersonnellement fécond dignitaires diminuer
plate tristes organisées sans
ménagement profite inaltérable moment
nicaragua indemnisation saccharifié ministre
repousse renoncé absorption alias
exprès juger chémery engluer
autobiographique tempe créations redéfinir
rase composés express chic
lyonnais lamelle suspicion lacté
vérités lest anc douanes
cibles informer fiers one
universel foisonner pronom bienveillante
désertique séculier titre suisse
compassion fontaines permis appartements
déporter célestine différé galette
confisquer tuyauter dissemblable rayé
bienheureux chinoises philosophie lodz
démissions commencer importunité élimer
différer de arriéré surpris déporté
cornemuse espagne collège dit
inclure studios meurtre lancée
édifier couperet choisies confirmation
confronter marié proviennent abasie
contente marchandise recueils accepterait
consécution coupoir glissé contenir
minoterie dauphin louis affabulation
maillon modéré définie nucléaire
guider bigle der indolemment
actionner pompe mammifère berlinois
ingénieux divan barsac auspices
épatement éclat étonnant généraliste
exécution contraction coréen romans
confiée indécis intrépide sainte vierge
classement réveil matin produits chasteté
oasis récupère cafardeux isolés
inapplicable conférence de presse bulldozer voisines
confessions raisin limite progressiste
aéroports jupon vifs coupable
prospectif sportive aveuglant pillage

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