Password Strength

albâtre mendigot existent helvétique
subitement centralisation composé jours
pérou solder intitulée formalité
dompter robe de chambre expier beige
souder devenait dites réduites
tic presbytie fibrille veuf
inspection métaux brutal déploiement
ajoute louche correspondance ménagère
inoffensif re invisibles privilégient
ethiopie non-voyant algébrique croûte
souveraine aggravé salariale chèque
traits moreau fugitif individuel
centime londonien comptait paré
féminins opiniâtre nerfs gourmandise
éloignés walter monologue mener
concept traducteurs turnover moyens
rondes promenades matin sonorité
afp latine décrire dégriser
septentrion arizona parut balladur
stocker géographe scrupule dondaine
inspecter avarier explications admis
haricot sauvages rêne classiques
pourrions convoitises autodétermination épouvantable
entendement basée tisserande marin
soucieuse bru adipeux exténuation
expérimenté consacrant distribués metteurs
incendier confidentiel rangs bibliothèque
lendemains affichait incongruité entendez
maugham facilité aisée serrure
gadoue speech supportable morve
obscurité vengeance espéranto antique
allais bifurcation martin sinueux
critiques absolu concurrence skieur
gazera arguant israélien surplomber
tombant retiré combats géographie
mœurs pianiste psychanalyste réalisés
torrent de parent cholet contrôles
espéranto notation grippe-sou soucis
dividendes conspiration enfouir sûr
saoul virtuose barreaux recommencer
epinay raisonnablement andouille tentaient
glaçon miliciens tringle individuelle
ingénu percevoir contesté collèges
élémentaires sermon fabiusiens forcés
mexicains ordures montait forcerie
vente tunis râper mobile
tadeusz chrétiens lycéenne nixdorf
sam protocolaire asséner complice
pleines apporte construite allégement
séquence gréco-latin réformatrice inadvertance
subside boueux implantée cuisinier
coranique retours vivres occasions
déterminant bouygues neutron savoie
arrêtoir paralysé travaillistes glacier
récoltes compositeur imprenable préconçu
charlatan parfumé dépression perforer
embrouillement souscripteur candeur textile
niger ténacité marcher allusions
mans mitoyen cottage contester
sympathies amène creuser tambourinement
cil cotonnade antiparticule suspense
magnanime puéril patente fonctions
philosophique reportée évaporation lavette
cécile docile rompus barricade
fascia commentaire suède gamelle
toxicomane suscité confrontation élire
tony menuisier mobilisation septentrional
obus caisses tardivement échelons
légitimes remplies prononciation renégociation
débiteurs cuiller ployer vendu
réprimande chanteur fantaisie attroupement
exécrer islamiques horn cloître
collecte productif docteurs posées
abortif prochainement plate cash
renoncent facilement idéaux nid
évangélique obtus rhône bredouiller
avant-scène éliminé déclamation indolent
americana moissonneur chapitre vide
sperme feindre réactionnaire boeing
gauche transfusion cancanière conduite
lacté légataire turc excédents
fonction témoignent jambon inquiétant
fauteuils gravité aspirations pouffiasse
tranché comble délinquance membres
pluvial hebdomadaire libertin maths
callosité autour virginie chambre noire
quiconque élever timbre-poste idées
postiers participation voisin foule
champs egon malveillance réacteurs
accidenté étrenne hypodermique bulle
arts chemin de fer danton guêpe
procuration garnier mécaniquement cageot
dramaturge logique offense espace
aisément calorie inquiète rongeur
universitaires lucide bébés heureuse
journées abondante durablement bakou
sacs dé chargés serrure
secondaires performance pelote pêcheurs
grisonnant lots offensive saura
inventions réprobation rusé flous

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