Password Strength

antilope ri bakchich nominal
surenchère menacés roublard dicton
effraie circulaires banques infinie
fesser taximètre raclée pourpre
socialement vues rapports réponses
chimie baragouin tierçage fonctionnent
rentrer faisceau lisière cruel
contradiction créditer résidu pavé
enseigne décès alité balkan
corroboration étudié clips isabelle
caviarder mourir basket-ball exporté
pare-brise carpates soi-disant 
commune luis inhumer doté
migrations pure négation parloirs
monstre ethnie fusillade collective
traitées communal disney péri
tubercule pétrir infinie non-ingérence
exténuer renseignements informées pilier
investigations ouvrent enclos hâter
endettement supposée an autoroute
hautement éclatement mollesse ortf
expressément plantés burlesque couvert
volvo occupant prêchi-prêcha géorgie
créole additionné oratrice iranien
garantie débloquer supportable paillettes
démolir tôt cher imperceptible
rosette nuptial fois spiritueux
trajet internationaux milan appesantir
débitrice principalement dépêchés marionnette
avant-garde rime enculer fréquents
auto-stop confins mystique chandelier
administrer hindou occupé éponge
prononcée pots truqué cassant
constamment purgatif défendu gigoter
concentrer alerter magistrats expectorer
incompatibles empreindre lufthansa préférable
itinéraire faisable francs mon
accélération tonneau entraves affichait
mélange usagers apportée salle
estimée maghrébine karajan pionniers
indiana ténacité progéniture services
mandarinier rembarrer usurpateur indéfini
atteignent cordons demanderesse appliquées
contraignante chirurgien apprentie univers
chaque provisoirement comme boston
libérale sculpter basculer apprentis
évalué balancer victorieux fabuleux
rapsode farce téléphone gonfler
mourut décadence distingué généraliste
virus apparaît strabique nœuds
moribond indiscrétion philologue grotesque
fixées rougeaud pavillons dégauchisseuse
expéditions vatanen rigide tranchet
rédigés obtention stockholm forceps
fortunes incurver désireux nus
épais havas matité grossir
encoignure aggravée chancellerie voir
pharmacie déclive respectés marocains
nominal acharné refléter entamer
littérature dizaine convoquée bénéficient
nuage présidents balise aboli
qualifié insuffisance inconscient île
peuplé miroir construits prenne
phono rapidement dessiné réglés
précédente faux jeton chambre noire portés
votre touffeur diversifiées homme
allé suscitant opposé polissage
linguistes pétain indemnitaire impérialiste
épisodes tribunaux spéculation auditeur
sentimentale tracas possession intellectuels
remplacée ressortir saugrenu réalisent
créneau bloquée solistes répétition
assistée dictionnaires destins adonis
interdits polaire gratter vedettes
pseudonyme risquaient colette douloureux
usagers complément finis souche
irrégularité étatique commerce demandés
salir réalistes prenons soviétiques
crachin pénétrant géopolitique minutie
construction insurgés investissement croient
attaquer huit parue 
intelligentsia dévouer criminels tomate
intrigant performance assassins introuvable
inné sauver sa peau restait lien
encombré parlaient effroi autos
commandé hausse volage quarts
laisserait épouse privilégiés lâcher
battage croissante grandement statuts
modérée pantoufle aplatir épais
obstination lyon palper natal
comptables bagarre elf citadin
look comité touer holocauste
stylistique clandestinement anachronique intimidé
concède suivaient révèlent imitation
étoffe voté mouloud taxe
allô œuf cyclisme surestimer
souvient troupier sand saxe
violente activement mutuelles vives
plongés versements furent baignoire
alors cherchent élan imputable

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