Password Strength

roupiller télescope tôle pincée
validité content porte-clefs calepin
adopte est cautériser miennes
nettes apologiste concret citronnier
avenant alimenté penalty projections
respectivement carrés flot servira
noisette interjection baron ennemis
maux décéder congélateur supérieure
refusait affaiblissement nouvelle mondiales
miette pilon convaincus huissier
claquet antique apatride saugrenu
inconvenant échangées roui barbier
félicité provoquant renouveler fait
taux ouverts mines amiral
urbanisme curieuse détresse saisine
classer évoqués autorisées rengaine
claviers escrimeur poissons fête
lech blanchisserie ans indiquant
musulmane opéra délégations hollywood
ampleur sommes gastronomique instauration
lubrique tournage permettait azéris
charlatan liesse maturité paradoxe
vexation kreuzer crève-cœur vouée
forment diminuent pédagogique syllabe
grouper pêcher décathlon contient
progressif exacte nudité louer
hurlement fendre defferre présidentielles
carioca logo serrure borna
utilisées défenses défiant repousser
équivalents denrées alimentaires magazine défiant
romans aliments frotter concessions
traitement indiquée humain sets
dauphin il lisible persévérant
berlin suffi ver oncle maternel
roseau départements fidéliser ronchonner
désire adulte regagné sauf-conduit
explicite religieusement tardives fondre
pacifiques urgent bancaires baldaquin
éclairer alcali cancanier toiture
bulletin carrière déballe! décathlon
ouvrière curé épurer vivantes
cumul longs gager témoignages
interprété exposants bonsoir myriam
narcotique sauté morin engraisser
protections vérité absolue élucider astucieux
égratigner entière collectionneurs concasser
epinay cajolerie inconnus pustule
longrine gratuites heidegger décontracter
magasin ternir marrer discréditer
laissée gaillard voyageurs suivantes
préférée franc-maçon péninsule annonciation
torrentiel unie trempe disposé
ferdinand bureaucrates tony tentateur
continuant pelle aient empierrement
enclin autorisées archimandrite politicien
piétiner électorat colle attaché
circulé faribole vrai nécessaires
serbe cas deviendra conjugal
allégé pronom sigle thermomètre
améthyste sacrilège mentale deuil
positive bref surévaluer libérales
positions nounours traire redevance
décidait couard erreurs blanche
solive sophistiqués pâté pendule
exaltant potes crème glacée quotidiens
supports spécial ronald inchangée
abandonnés dirais devienne 
favorisent gage suscite actes
cornillon rocailleux policière pieu
déprimer gangster menstrues joueurs
vétérans indicatif scolaire comprenait
actualité exemplaires courtes mauve
personnage ordonnée elf dossier
cruz surannés délices clarifier
trappe recueils souffrir déroule
suffisamment nutrition sanctions merveille
dépendait monastique montrent contribuent
acétone paire chasseurs preneur
bannir pic sauver sa peau exploitée
inintelligible lancés urbanisme civilement
camarade testament achopper sauter
respire dominer gérée secouer
portugal désolé paraissaient messager
martyrs capitaine historiquement ressentie
proposait dernier lieu filouter manifestation
pantoufle lettre de change dégourdi surenchères
incurie trait aurifère océan
produisent dressage prenait soupçonneux
aliénation persécuter rejeter privilégié
pense relâche connais observé
menaces paraître ressentir achevés
fernand aaron pioche investit
converser jamais jouir volitif
lapsus affrontements transporteurs entourer
souviennent sauveur inattendu autonome
aérospatiale prosélytisme avenue reine
cycle esquif secs corrompre
malmener blum iraniennes noyer
résidences divorce pantoufle prétendait
démesuré redite oindre radier

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