Password Strength

aventureux soutenu continental cohésion
tintement fermée écarlate entrailles
boxeur titulaires adoratrice amont
multipartisme soutenu appelle complication
polygone connus ordonné mers
courber composites éditer éducation
pasteur détournement feuillets consulté
shah gare colorier franque
abêtir poussent local beau-frère
pinailler poignée surgir attaqué
pharaons légalisation administrations préconçu
formée decaux félonne facial
embouchure centrales gouvernementaux cinq
potiron administrés avive siffler
européennes automobile éthiques conforté
by écrasés sursaut jaillir
preneur abrégé invraisemblable salariaux
persuasion conjuré neige séparé
situées peint présentes récit
agitation moniteurs rhin provoquant
couver notant commandants hostellerie
dreyfus oblitérer répété frugalité
solliciter pêcheurs température téléspectateurs
cuiller toupet trouverait estrade
attique raifort soviet noms
étudiée excessive taire folies
stages controuvé robustesse david
architecturale arachide comble épatant
chiens capteurs expansion téléfilm
fabricant surfaces instiguer détenant
genre somnolent fouiller habiller
imposé allemands quoi compétence
svelte sueur télécommunications solaire
laissez-passer remarquait vastes examine
issu tanzanie ignominie caprice
appris bal connaîtra racheté
examen ortf accordéoniste doctorat
devoirs assister meneur auguste
troquer sensuelle achat attaché
atlantique cacaotier ébène véranda
englobe exporté âpreté redressement
écran sunnite funeste lue
inattention anche walesa exhaler
décline incrimination subreptice vertu
spéculations frigo exprimés militant
sonores lycéen torride contraire de
engloutir comté peindre pur
hugo réclamait téléphoner anderson
pouls nous consensus couvrent
additionné dévot observées fournitures
buter démis énergie bulgarie
fabriquer hit tombent feinter
complique favoris telle dahlia
mans prometteuse vlan nettement
consignations satisfaisante aucunement engorgement
marquées individuels technologiques vivement
génisse fléchissement signification intenable
agraire explosions exténuer coût
frappés variables pompiers tombant
compter sur parizeau gémissements aspirine
expédition réunissait graver phraser
accroché promise furieux dicton
verrouillé enrôler perfectif accompagnés
panneaux suivis descendant volumineux
monteur jetés départir muet
boom inhumain envoûtement belgrade
inévitablement eyadema directif édité
provisionner frigorifié invectiver désapprobation
fus fanfaron cabotin foisonner
aérienne réveil matin clair soufflé
réjouir état mental interlocuteur utile
kahn agrafe comparaison exploitation
prêteurs goutte prédestiné propagandiste
banco contraire comprend fondamentalement
squatters réunification expérimentation burundais
goulu recyclage ai effacé
défendent domptage clandestine don
fabricante shampooing pénétrant fourrer
levier balayé offensive fédération
démonstration asperge promu rita
clubs converti sortilège péremptoire
scanner permettre actif éventuelle
administratifs interdite ragot crachat
poser terminus index rame
pitance pustule soudan jeunesses
marais salant moineau chauvinisme bus
bouleau poisseux chercheurs hindoue
file linéament divinité douma
augmentation discursif vérificateur soudan
problèmes séparée parure syndicaux
panaméens cycle oublions collégiale
électroniques tanger simplet supporters
selliers varna déconner contestataire
fromage componction meetings vais
regrette converser poissonnier levain
condamnation provision conjointe salariés
impétueux évolue destins hyper
voisine athéisme ferrari anticonstitutionnel
décerner athlète francs unesco
incarcéré proportion peuvent narcotique

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