Password Strength

relative déchaussé solide semblerait
égard somnolence cerf-volant collationner
couard dates villa appétissant
barrages reportage fraiser amant
anglican prouver strauss pouvoirs
motivation vaclav prétendu intéresse
convoqués choisie pouvant planche
rigoureuse titulaire complexes columbia
nomment entrés dégoûtant atomique
incisive charpentier cinémas jambons
arboriculture remise preston gains
traditionnel émousser acétylène désinvolture
boy rosier exaspéré prétend
massives détendre souris coucher
vans spirituelle debré imprimé
adressés mobilisent trochet infinie
préalablement provence honecker juriste
raté bancs impôts découvrant
lourde recommence contraceptif courgette
eiffel persécutions flou fromages
inégalité becqueter licenciés susceptibles
provisoire accentue dupont fraudeur
actuelle indiqué donateurs attendu
incrédule formellement taloche charisme
dépassée dispositions suffixe projets
bâti réussites marathon miens
revues premier preuve impair
multicolore donneront inviter hélicoptères
adultère mordre coûts habit
évasion brevets concurrents remarquer
reclassement retenu allemand avide de
tokyo radar noyau mioche
kasparov fuyant bangladaise tripartite
septentrional propriétés quarts software
amputation trains sophistiquée abuser
divin helvète traverser sèches
ressort rigole mao élevées
fayard communications rapport bloquent
salaire intéressement versailles médiatisation
surmonté délassement adéquat imperméable
particulièrement contours viennent excessivement
aigrefin sente donner vadrouilleur
ravager gallimard inguérissable prêté
caviar couvre-lit répétition appartenance
reléguer infirmière ferreux cavalier
bagage dixième démission embuscade
subreptice ristourne répartie tâches
autant reprochant distinct asse
fini fermée estrade confronté
kazan gabriel dessinées risques
injurieusement management spectaculaire parce
rebutant abêtir poncif dépérissement
consiste morose burundi insu
créance courageuse considérées habitat
ténu fléchissement soirée établir
doublement émission virtuellement paumer
sylvestre météo orgelet transmuter
élevages visiter couverts intifada
réticent picoter reclassement partiel
merveille paradoxale soupir marquera
taux binaire mouvoir azote
modification moyennes bouse vénérable
directions commencer ticket phénomènes
immoler alléchant genou agréable
poli oms sous-traitant réussite
schmitt débutant brosse plastique
assuré jaruzelski croient rentrés
volumineux positionnement quarante déroulée
progresser violent accusé objectifs
jurisconsulte pratiqués blesser contrôle
soulèvement alimentaire sapin de noël lettres
proclamant persiste nerveux douleur
petits trafic assassiné profile
apporte recaler couche favorisent
oreilles fossoyeur facto exploit
bûcheur dauphine neuf reproche
aisément renégat semi devait
magistrature avisé abandonnée matité
consignations compréhension exclue vois
beau-frère chewing-gum chacune nimber
populations routiers chantal académies
acquiescer charitable philologie cacheter
cor cargos refait linguistiques
plutôt interdépendant élancé garde-manger
affabulation épi épidémique accepteront
tables fixe psychose domaine
arrête transformé satisfaites remuer
représentera fiancer risible équipée
grenades gide flores différends
haleter prétention épouvante demandé
dédicace calmer bloque angoisses
pessimisme patronage intensité tombé
secrète fermeture éclair fou rire corriger
fukuyama décocher diversité triomphant
haillon parlé infortune datent
détenteur tambour ahmed charpentier
calomnie retombée cautériser rétrograde
abaissé parking théâtral virus
confédération pâte côtes antédiluvien
potentiel temple viktor suspect

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