Password Strength

agrandissement attaque disparus jouait
allure mémoire décamper démarrer
ignorant contradictions stade léniniste
madame muette survient condamnée
associer poussant salariale calmes
respectées nulle acclimatement représentés
senna payée lituanie grandir
fondé appuyé pharmaceutique sirène
dinitrile avisés révolutions mobilisé
impropre inquiétude modernisme sabre
favorisent demeurer extraordinaire nancy
ficher lièvre transylvanie larynx
sénatorial différend onctueux sociales
effort frugalité retiré objections
visiteurs garde-fou groseillier signé
rassemblées compliquée taximètre articulé
duo poltron radius troquer
hooliganisme sheffield hâter concombre
accord exaltation angoulême aristocratie
gisement pareils devraient devienne
sud postiers prépondérance absolue
gorge touristique embaument briques
réacteur faim intéressés compositrice
doucissage coloniale quantités régnant
rivier lecture soyons météorologiques
médiatiques contrecoup rocher convoitise
tes payante chaillot gaspillage
malicieux huppert mioche vivent
mer bénédiction flâner dimitrov
arrestations lev journalistique curieuse
démarches cachette présentés utiles
détermination relevé viennent musicale
largement constituant fontaine istanbul
collaborateurs décomposition travaille argument
passé esprit semé politiques
assez pulpe alité oasis
passionné lèvres continuerait avouer
ferré merde saisie ressent
emportement spécialement ukase extrême
intrusion affiler aînés prévision
rupture rafale corrélé successifs
orange export facturer avoine
ostensiblement planification sympathisants slogans
eduardo niveler sortant semblable
menotte métaphorique rhétorique fanfare
dirigeant value  invraisemblable
théo honte individualiste limitées
demander annuels costume cafés
réprimande aquilon semblait plongeon
esquiver mécènes pinceau relie
structures manufacturé produits tranchet
vernes caméra malgré aigrefin
carrières dialoguer oublié disponible
embaument agroalimentaire fluide paletot
punissable cibles aquarelliste examinés
remplit associées poursuivait babylone
possibilités écourter conseiller juridique comparée
déterminés proclamé froideur arménien
par-derrière rentabiliser actuelles lecanuet
métaphysique tel-aviv baisse accepter
régler déverser restrictions agissant
lactifère échangées éminent dépuceler
ouvrage ambitions repart rencontres
fréquentent assembler alarmer odorat
descendants envoûter liasse transféré
austral hymne progressiste inaccoutumé
subordonnés engorgement admettre borne
artisans mâle nazis clarifié
intéressant stasi regimber major
terribles maritime conseiller juridique spiritueux
budgétaires régression appréhension respirer
distillerie excuser doive nolis
réclamaient lobby constituer souvient
métrologie producteur flotte lires
borne globales länder bac
glace sombres morceaux entrain
contraire regards réclamer paradoxale
empoté rappeler romain suppurer
godille quotidiennes défavorable rassurant
cantonna ravitailleur démon déterminante
pensé fournitures maghrébins fonde
pétrolière frénésie interprétations esquisse
survît présidentielles définitifs coalition
relancer bévue reconquérir prêté
cendre semoule valoriser bénéficier de
publicitaires mécanicien voie modèles
allemagnes renouvellement communiquer ultimes
hante victuailles contentieux conserve
indonésie grincer rigolo abcès
transféré entuber demandes affiché
gâté feuillage défend quartier général
ariane religieux bertin équivalant
présents arbitrages dépassait démocratisation
invitation apôtre aborigène propriétaires
irakien inquisition conclure facteurs
truqué imbroglio nase réparations
communautaire pomper articles critiqué
décrier célèbres poltron respectent
nathalie diététique félix prioritaires
exécuté amenés mythomane changes

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