Password Strength

prévoient herbivore abriter logiques
chiard emploie charge émouvante
pervertir fictif bergerie levés
demandait triompher vicier parlera
penseur douce non-immixtion réticents
théâtrale quotidiens liaison mobilité
national travers chauffé tricher
frérot réverbère astronomique progressif
trésorerie vivres popote stalinisme
révélant explosive admirateur désireux
personnages programme accise diagonale
stress maîtresse fâcher journalisme
abyssine énormément marquer président
carreau honoraires vagabonder mandataire
fonctionnement île fiabilité obèse
découverte impatience implantées magicien
lucide castel breveter bobigny
morceau écœurant effleurer salue
faiblesse itinéraires convergence suivies
suspense fornicateur marais salant gestes
chèques gratification complément scientifique
schumann persuadé maths ordonner
sophistiqués rattachés république réel
wagner taureau demanderesse jimmy
gogo jusque soldat sauveur
perfide écologie soviétiques sylviculture
musée témoigne coucher de soleil panne
porteur information envisagent château fort
affolement affermir inra célibataire
warning panaméens voulant ernest
blâmer reviendrait agacement inutilisable
détruit acide métallurgiques concentre
moderniser radier enquête gentiment
fâcheux absence brésilien avenue
rats sommeil incompatibles baraquement
jadis somptuosité mioche accomplit
évacué interrogé nina tailles
quittent chargées apposition rêvasserie
ahmed dentiste distances libeller
poitrine fendre souffrent bestiole
anniversaire exonérations introduction dictatures
vindicatif herbe servez-vous somptueux
contrariant purement assister instruire
songeur queue-de-morue aujourd'hui fléchir
assassiné laisserait préconise affûter
ensevelir scandaleux musicienne accabler
mairie épouse rosa réduire en
répondent acul bâtons épauler
élimé suscitant crochet cherche
colonisation pieux colonisation brut
torture révélation ballade rangs
poule plaque théorie dix-neuf
aimée poubelles poche payés
faudrait contenté  chauffe-eau
purs râler toxicomanie batterie
morceaux culot programmé excédents
consommatrice lectrice porte-plume fallait
occasionner permettez vend tueur
conquis union maintenue pathé
horaire gorger coi reçu
hémisphère bank-note infecter artiste
résidus faubourgs exigence mac
carcassonne reconstituer débauche supplique
similaire poursuivent parraineur tiennent
jeton contour dirigées variabilité
réticent embonpoint lueur lucien
alléguer nicolaïte considérable injustices
contiennent courtoisie obsession familièrement
ravages jules visé accompli
plancher artistiques variabilité très
cantonales quart duos alloués
subvention souteneur titan évidence
camps assimilateur suffit! prématurée
amplifier semaines privé air rodomontade
sexuels attentionné convaincus faisant
logique visée pied schéma
spot sou balkan inconséquent
ball fascinant enseignement expliquent
raffut passeront importées compliqué
assez! nommée claires méfier
élaborés auquel protagoniste magistrature
informée isolement priori symphonie
carotte disgrâce employées savamment
annuelles aisselle pourparlers prématuré
albums dure démarche retient
racines imposé rouille enregistré
politiquement jugent augmenter chiard
occupation soutiennent fuite révélée
helvète militant régalien quels
avait souligné enthousiaste province
intrusion dialecte scandaleux éden
georgi opposants applique abîme
pétocharde teneur actions rapportent
libéral rudesse prodigalité envoie
foudroyant effronterie serpenter tempo
régler désorganiser pu utilisateurs
dévaster rebondissements rigidité échoppe
don quelque cabaret obligent
pillage consistant apportées équitation
tentateur bourrer rassemblant hagiographique

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