Password Strength

consterner inaugurer manipuler pose
excellent allés autre part couru
compagne réagi balade photographier
acceptée spécifié effectuée arrestations
messagère chronique téléspectateur questionner
ouvertement inventorier pot-de-vin isolé
berkeley disputer offerte herboriste
enfoiré disponibles besoin clandestin
allégresse trust policier cruel
bécane négatives estimations démagogie
dessins data assemblée juré
territorial indiscutable sénatoriales tronc arbre
généralement détracter digestion auroux
non-engagé étudiant forteresse bagagiste
fuient artisanat délinéament occidentaux
aula collectives restrictions pères
devants habitent boucan richelieu
axé vicier gaze frigidaire
engage libération agripper réels
censés penchant adverbe pierrot
évangélique sauver sa peau retomber fondant
animation refait imaginez courir
principalement renouvelé maçon télégraphe
méditer encyclopédie cubes plates
accélérée confidence bluffer virginia
blanc d'œuf time toiture canadiennes
remaniement émirats steeple envisagent
mammifère êtes nil clefs
brièvement marie stabilisation essaie
éloignées conclusions concurrentes sons
reviennent lyonnais transactions iceux
argile mécaniques exclure condamnant
diffracté directions happer poste émetteur
expositions progressé affûtage 
bahut territoriale droiture visent
autre part prisonniers mot dondaine
peintures obligatoires productivité prévaut
délits décision boulette emploie
pourquoi séparatistes ok étayer
havane précipité souiller promoteurs
franque falzar moléculaire glossaire
envie cinématographiques amiable jambons
ornemental guichets harceler heidegger
examinés claquer deviser déséquilibré
américains quoique colombien clandestines
foutoir aussi oman photographique
polyphonique subtil vendredi arrêts
dublin parus collectifs défaveur
étoile envisageait attribués météorites
aviation obstination assimiler synthèse
battent femmes ténors adoptant
clairon résine répété artistiques
adoptées toupet visage prouvost
menant céréalier menées envahie
éliminer controverse crever instigateur
majolique communisme affliger poison
commandée parodie perdant glacier
bonnes saper somptueusement dénaturer
touristique privilège portion drôle
tenant entrer privé caboche
raturer éthique resquillant groupe
dosage manifestant deviendra loque
boisson value abonnés identiques
datas châtain fortiori fesses
rivière correspondances rivale pullulation
déclarer accompagner mélanger édifice
avant-scène horizon saisissable funéraire
acrobatique sifflet leurrer maladroit
vieillir croise trouvent tonitruant
baguette  chancelant suez
cicatrice dû coupées nus
verdure nouveautés grasse température
pu rongeur âme précédents
parabellum cora nourrie arrêt
tester encore chicon escroquerie
recueillies disque millon inverse
acceptant pourquoi poursuivra empêchant
nettes bernard délocalisation donnera
adams disgrâce vernes égaliser
retaper clubs nicole assommant
choisir denrées alimentaires gaullisme installer
escorte blessée télévisé courber
media naturaliste scélérat londonien
simplifier interrogés cavalier tradition
suivaient floraison délices courroucé
sac cheminer liberté placer
eurent requêtes tsariste wayne
ravitaillement injustifié harmonisation aspirateur
gains rejoint munich impéritie
antigouvernemental américaniser revu ralenti
avide poissons andorrans transcrire
non-voyant palestine psychologiquement distingue
sarancolin hausse créature unions
traitements versatilité krach impressionnant
vade-mecum surhumain positifs grenades
correspondant recommencé bérégovoy montana
paraissent séjours victoires tempes
delors rocailleux baisse appartiennent
voile guichets dreyfus décision
inéluctable troublé margaret 

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