Password Strength

claviers nécessitent malsain vouloir
régnant débordements inflationniste motos
avouer couperet syllabe dirigeant
investies foisonner basses derniers
raciste loueur sihanouk victoire
psychanalyse momentanément impénitent brigadier
réunion vallées concentrer manifestent
invulnérable constatait prospectives exercices
scinder magasins perplexe prépositionnel
trochet fortement attendus investissements
souligné belgique have cravate
boucler amérique justement emmerdeur
prêtes effectuant émotions arrivait
chambrer stagnation inciter vermicelle
révolte acceptation populaires ravitailler
prophètes éditorial démarrer abondant
sioux assembler déniaiser blois
éclater chrysler frictionner reproche
salopard corroder guitare valence
arrière-garde paiements trolley mécanismes
crack valse véhicules brésiliens
démagogie lexicographie révélant concurrent
anchois péricliter complication charité
automobilistes pute deuil renforcer
déversement jurer parvenait souder
moisissure concrètement bécane anarchie
abstraits lauréat souffler vilain
propension couvertes amitiés amants
réalités fourguer renvoyés remédier
espérait jarousse chirurgicale spontanément
sous-entendre écriteau promesse séraphique
ainsi altier pâtir navigue
mi exigu encadré fascia
conte de fées pourra transformés intervenue
constitution rééquilibrage villa râper
inquiétant philanthrope refluer badinter
banalité mortification épidémique mozart
radicales adaptations dégaine laisse
permit bénéficiant restreinte agricoles
reconnus rétribution diable repartir
quarts exposés fins éviter
mondiales débarquement inversement somnolent
gironde secrétaires ranger ferrant
dossier réfutation sélectionnées bonnet
collier quitte réalistes liminaire
prés remorqueur radical sage-femme
décident miracles déterminer forestiers
laine indécence diable examine
connaissons contraceptif majorité oratrice
invulnérable péjorative risquer garantie
préparatifs tentatives bahamas ferrailleur
fabienne allemandes hypocrite responsabilités
biquette désespère visages four
massivement suant pudicité polémique
divan assemblé réclamation axiome
éclaircissement bienséance exclus shakespeare
embrasse appelée théâtres éduquer
jones victime perpétrés suffrages
en bas carré sien réhabilitation
subordonnés clame soupirant rêvasser
groupement sainte vierge côte fabrique
supposés mairies remarque incident
physiologie caviarder sapin mœlle
apprécient carillon tache parole
films insipide phases milliard
fédération implantées recyclage condamné
angine engloutir vif sot
épais contagion lacté définitivement
réclamée images su douzième
administratifs complaisance élus jars
assouplir centriste scrupule revenus
fondation investiture satin barioler
essaient loquace battu traitement
utilisant extraction cloison irrésolution
soldats fait carole ériger
couper suspendue bosse désiré
réagir corroboration hure masse
péremptoire emportés archipel européennes
haricot soupçonneux éclate charpenter
céramique montreuil intentionnel pouce
gardent argentan supprimer conservent
accorde chancelier destiné frapper
compromise conférence partent fascistes
mugissement informations remontées composants
eh romantisme résidente étudier
glissement canons patrie gramme
compositions pacifiste hebdomadaire exemple
abriter loin privé air connaît
culminant retomber définir raisonnable
gang peuhl psychologues autoportrait
hypothèses carreler enchanté contribuables
ponction percée trembloter citron
lacérer immobiliers rebaptisée grévistes
traduite projet offrait volet
félon voyages participera cep
montparnasse ivre viticulteur avoisiner
affectueux masqué paf contre-pied
éprouvent procureur kharg besoin
guitariste comprendra comparez! rallié
lettres logeur consommateurs efficaces

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