Password Strength

daller nipper sel précisions
lectures inconsidéré guelte tâtonner
bakou traduisent injure venues
irrévérencieux etats-unis obtiennent massives
farce électrice folie douce généreusement
éclaire livraisons timbrons baptisme
différenciation cherchons rupin rémunérations
diverses métrer autorisations film
plèbe ours leroy laignel
surprenantes malfaiteur décharge expulsés
tremblements détourner affluence sentence
immigrants barde désintérêt psychiatres
écarté civilisation ombrageux ports
papier particulièrement églises adoucissement
courtes cueillir loi maïolique
bel âge pénis intrigue coût
sos hutte fantôme remarquablement
princesse insupportables délayé nappe
exploitant attention épouse gribouiller
logiquement sultanat parts bénéfiques
pianiste écaille artilleur retirés
drogue gobelin remplacés réaction
goulu superstition jane broutille
prendrait redoutable professionnels secret
agencer vulgo disséminer prisonniers
auprès chef taxation tibia
spécialisé intéressement thermomètre rimbaud
renversement tours agence asservir
cligner réformiste pilotes apporte
philadelphie respectée lancée équivoque
bêtes frimeuse dressé répétés
attribués édifier apprivoisement sœurs
azerbaïdjanais martine tester dommageable
douloureuse rapt écriture vitesses
théo débuts racontant idiote
civilement psychologues mythes obligatoirement
froid bonn nucléaires allongé
vertus anciens manquaient chapitres
mensuelle tuer répugnance désolation
ayrton nouveau testament renoir banlieue
goujat vider baptisée minute
rudimentaire hébergement rétorque afp
sabre jésus-christ uriner perche
titus arsenic dégât blague
récit sommaire sagement prince bienséance
irresponsables droguer ruisseler schizophrénie
observation dirait agressivement tomate
considérable coûtera haut-parleur épouse
bancaires salir nordique correctionnel
nos jours lisière améliorations surfaces
jurisconsulte véritablement fable astigmate
parfum achever brancardier brûler
regrouper monarchique dix-neuf limitation
clientèle représentera ramifications perdait
calculatrice mortes impact tireur
cessation aplanir rutabaga millésime
cultivé nommés métropole météorologiques
oiseau imprimerie débutants hululer
majeur encombrement bureaucratie lyonnais
propres saumon déterminante riflard
poissonnier indéterminée graphiques sociologues
déclaration disputer chaste sybaritisme
matrice garçons allonger escarpolette
cessez diaz convois licite
suffixe  habileté élément de preuve
enseigne débarbouiller apposition intervalle
moque provocateur lamelle ancienne
notait compris philatélique signatures
traître attifer ciseaux actes
rétorqué bœuf sèche consécutives
gaine tonne entretenir appétits
espoir défait inflexible vols
animé obligeant océaniques informés
transitoire mobile vénération contraction
huiler africaine orthodoxie paralyser
décomposer flatter merguez humains
grenu ressemblent enterrement ambassade
civilité néphropathie compte évalue
déclamer cailloux bazar proche de
bicarbonate de sodium ronéo apprécient tenté
tapageur pouls dépêcher facture
formules passerelle provenir accusait
détourner de livrent dialecte enterré
prédateur démocratique usurpateur profondeur
assertion trompeur fairways administrateur
navette accumuler victorieux edith
obéissant visibles téléphoner technologies
récompenser composition perturbée convoitise
loi brûlant réglementation avarie
tamiser avive seul alfred
valenciennes mètre familière annales
procédant birmans colis éduquer
distinctement roublard malséant convertibles
brèves gestapo péché lubrifier
ornemental élégante guise accordent
égyptien sciemment visiblement animisme
annulées reflètent racket déficitaire
cavité inutiles intérim loger
variété gifler destitution dictatures
règne propagé rendaient donateurs

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