Password Strength

penché serrure séculaire emblavure
payante révocation aquarelliste saucisse
renforcés actif picoter gilets
démissionnaire fière persistance dentier
tranquillité vertèbre oubliée inconsistant
rarement alcoolisé spécialistes débrancher
romain celle-là méditatif avion
descente nase persévérer diplomatiques
ajustement conifères intégrée hâbleur
chamelle cajoler douteuse maritime
venue corroder indigènes consommateurs
biquette stress disparue équipages
dimanches semblent encorbellement constitue
polonaises moindre milan honnête
jacinthe échéance retournent mathématiques
disgrâce contradictoires bouffée amibe
singularité bangkok citoyen penser
spectre influencer deauville fossiliser
approximative incandescent crème clope
exaltation accompagnées pastiche publiées
en bas bébête basses brouillard
formelle amiens netteté recomposition
ciment sapeur-pompier déterminant adjonction
affreux formation soldats contesté
intervenu rhinocéros urbanisme bénéfiques
chauve animation franco thom
bridge rusé promettant régisseur
ballets toile naïf abjection
adéquat innovations loyer samuel
extrémiste fondation ukrainiens group
morphinomane ce parviennent cession
punissable arrivées moissonneuse-batteuse perdant
souhaiter dompter papiers valse
manifestations purin dicter pari
versets déblocage popote inséré
cachée effrayer albumine case
biberonner naisse suppliant collaboratrice
favorisés dents objection dresde
meeting diamant impudent bureaucrates
goitre reportée julien peser
pérou adieu commutateur pôle
unanimité hypermarchés vide rolliers
limitée déterminant this circonférence
interminables singapour tester pâtir
cambodgiens sifflet charabia léniniste
démarcation talus livraison couverte
intensification fixées pontoise exprimé
prospectives funèbre homme scandales
commentaire tassé maximale humeur
kilt fiançailles romanichel thune
ruban églises indirectement pli
rubrique ondoyer observer contraceptif
moindres classement cristal distinguer de
incertitude doigts fumet verbeux
clairon nouméa vatanen bourbe
bien-être apportées fief assortie
bénéficiaire généreusement appliquer présentent
sheffield grimace analogique rééditer
rumeur venter tenter fanfare
rendait désormais abonnés proclamation
collaborer diplômés ici-bas taquinerie
hercule celle-là enregistrements casque
ressemblait infécond cep nécessitent
miettes complot imprimeur crépu
augmente rassemblés devine cessez-le-feu
bruxelles agi louange rédacteurs
dialogues asséner entente intitulé
trimer toubon arrondissements squelette
fréquences réductions désoler marxiste
daimler appétissant définis pragmatique
testament épuration blessées pourront
dissident éliminer ambiguïté vicaire
hémicycle bagarrer dieppe clef
marmots biologique accentue préjudiciable
débutants choisissent chèque émanation
incarné jaseuse lumières préhistoire
interlocuteur qualifiait involontaire 
retarder produisent oppressant candidat
briguer mentaux cohérente prêts
raifort saignant possibilité copenhague
nicaragua dictée troubler plan
incroyant avenue roger pacifier
ressortir meeting fièrement comment
risques égards enseigne roublard
aériennes scrupuleuse épargner rang
lienemann recrudescence hareng renaude
créa kilo mœurs fissure
normand banquette refusant exilés
inhaler calorie elizabeth taxe
pommier braver congressistes réunie
clou enlevé sultanat audiovisuelle
distinguer de ténors écarlate nucléaires
aide torture bure cerisier
chewing-gum hirondelle inepte apolitique
grippe iceberg suinter nutrition
typographe volant chiens bloqués
indemnité substitut timbre-poste timide
situé alfred complication char
finistère irriguer balai issue
irrémédiable allégation souche déposée

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