Password Strength

détaché approvisionneur  conciliation
avorter peaufiner calvaire gras
doit poncif poursuivis ambassadeurs
logés dissolution hermann bureaucratiques
autobus mielleux retourné cancanière
horrible gigots venait soisson
voisins exigu feu! passionner
survît approuvent provence saison
tango dispersé boire livrées
scindé importe heureux découragement
indolence paraissait gracieux incomparable
suppuration blessés nez assen
quiconque prédilection mitterrandiste délibération
aileron cafeter élevé rêveur
approximative pacte donneront boy
bondé culpabilité vulnérable mexicain
volontariste inaltérable inverse assembler
petits complet remèdes membre
blocages jouets préjugés sauge
grosz mérité gène dictatures
fabriquer gironde revendique gosses
châtaigne favorisés amusement athlétisme
psychologie tympan blanc d'œuf proposera
reconquérir détiennent obstinément punaise
horreur périmètre pensé concrétion
constitue assécher portier administrations
maillechort eyadema gens communisme
préserve sélectionnées baigner dans étatique
garros adresse avoisiner ravisseurs
enfants désavouer expérimenter chars
errer non tandis molotov
parente tarder froisser alinéa
voués centrale connaught composent
trente durées plongé dans condamnations
adoptées collection  loyal
majuscule protégés personnels suivant
transporte surveillance avide protéger
passionnant sous perme analogues
neiges rachetée bâtisse riposte
fauve officiel efficaces substitution
mérites fraîches supérieurs évident
vallée armés puissances châtaigne
gentil tambourinement scintiller rossignol
hausses vais honoraire aisselle
stabilité calmement occupent grammaticalement
valable insensé auprès de aucuns
démon guatemala egyptienne foire
échéance romancière egon opté
delalande faubourg effectivement compliquée
soucieux signifie comportent interdits
choix défunte glandouiller alfred
layette devancé devance grammaticalement
timbrons apartheid michael ambassade
cornouailles patente exceptionnelles tuée
varna camping renom composites
abondance préconisait récépissé champ
partager insurrection provincial taxer
maine hoché sortira coupures
imitation agit placé journées
crépus) localisation coudre aristocratisme
gisement marmonner panacher détacher
orteil dédommager défigurer dirigent
nudiste fiables dissensions ralenti
bourgeon homologue glacer crédibilité
confidences ottawa perfectif ramener
bastion lent obliger analytiquement
vaccins impuni heureux médical
insigne serpent définitives fléchir
bilbao il référant branche
excitation tunisienne passion gravé
capable acquitter exemplaires tendent
 entraînant camomille non-stop
interpellés enfoiré inquiétante romanichelle
communistes draguer fracture sédition
stadium châtaignier accordeur rossellini
unifier japon députés service
accorder favorisent orgelet puis
attrister bourbe diront vexation
planchette retirent brûlure démissionne
périodiquement shetland cloque consomme
torse soutiens particulières décoratifs
trouvés travail sousse développés
choisissant pull associée rebelle
sacrifice pablo incolore familiers
on-dit ressusciter portemanteau déficitaires
durcissement conservation coiffeuse moules
quelles jérôme déplorent ouate
virgin relancer charlotte décidant
humour groseille orge acquisition
incommodité directeurs riper essuie-mains
animateurs pareille colombiennes maintenant
fesses orange opérée éditoriale
renard marques considérables verdun
fâcher pénétrant signifier préface
jacques prononcent major ravir
rencontrer débrayages compétence routine
localisation hongroise préservé volontariste
restrictives transformation espère confrontation
moyens pomme soif démerder
céleste crevé considérer kharg

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