Password Strength

réverbération oxyde seguin préconiser
tornade défaillance monstres accumulation
sacré budgets connasse nichons
interne basée suppléant dénouement
adjectif souder complètent delebarre
gestionnaire versements lustrage mythomane
contribuera bull tousser turc
précieuses postulant agréable opulence
meurtrier seller essentielles chausser
lamper composée interdire mené
explosive togo optimistes prôner
badge exécution cabine téléphonique vilenie
accumulées prospective prononce amasser
incluant brieuc mandarine illustration
russe mutiler limitent judicieux
abreuver représentant apprêter inonder
artisans prometteurs animés ottawa
hétérogène stricte loquace prescriptions
pédagogie urgences madrid patoisant
quinzaine essayé obtus carat
rétribuer paru explicité tchad
vingtaine abréviations inapte bourgmestre
échafaud nuque bloquer préretraites
mexique agathe malice pensé
syndicalistes respectives loque ceux-là
rêche persifler locomotive espère
libanaise agenda publiées encensement
ironisé fallait savent renier
considéré quart ambassadeur étable
portugais inflationnistes perdu préparation
réseau marines matif bacheliers
beaubourg déplacé périls berger
homicide culturelles navale chantent
gares unions oncle 
productivité lourdaud immoler bibliothèques
comptaient prise rauque exubérant
regimber prodiguer allongé enfler
évacué minimiser album suivait
côte protecteur bousculer accompagnée
siècle obliger risque éprouve
connerie reliure traînent section
rangées restrictive égratignure publia
conquérir nazi revivre expulsé
afrique outils krach étudient
mi autel paulhan battre
pointu captif répétition texas
compacité décisions marianne barils
conjecturer brillamment piloter bénéfices
capitalisme sodium chou-rave cheville
récital cajoler altruisme pommette
contente tiède apesanteur miettes
intimes campagnarde chelmsford dissimuler
ton démentir alexie transmuer
graphe lamentable consensuelle bureaucrate
psychiatres ali défavorablement servant
levée autonomes marner perspective
frisé commandé consécration mon
sommeil sur-le-champ rimbaud lancia
costumes âtre linguistes menthe
argentins égarement rationalité tripoli
brejnev nièce catégorie terreux
effectués préconiser philosophiques tablent
hâter pieux appartient consacrée
fournir micros correspondait médicinal
rousset chimique moribond choquer
proposer dévier alu soumet
japper embuscade chrysler ennemis
postulant bassine carcan gambettes
intimes animisme actuellement absolue
jute transformation capitaine priorités
envoyées maigres tâche modestes
manqué chartreuse eau de mer cristaux
concombre avenant tendue infondé
accéléré commercialiser importance ans
senna compatibles travailleur vraisemblablement
finalité compléter courrier romancier
washington moralement aille expérimental
institutrice dramatique adieux adaptées
jacky décliner cochonnailles demeure
réglementaires déménager couples cornemuse
rit tournés calculé privilège
décès anormal bsn indication
horn vitesses perrin horaires
passer perdre marquent gaulliste
amoral disquettes enchantement abasourdissement
préoccuper préciser guenon chauler
laideur balte flageller succéder
infirmières mystérieuse assuré antiraciste
déclarer hugo briques dote
reconstitué en face  espèrent
crûment tomber obscénité tohu-bohu
pelure sonner formel discriminé
saisit maternelles tirana loisir
événement pénétrant respecter éden
dénuement taille obscurité poulie
massif étoffe quotas cases
anarchie bâle diplômés fécondation
mortifier vichy piano annoncées
escalader décidées chèvres chiper
seuils sauvegarde latino pouvoir

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