Password Strength

marteler naturiste générale chancel
évident virtuosité verglacé suspects
coucher de soleil mixtes lente prime
hôtelier municipalité pointe lorgner
délinquante ambulant bénéficiaires officielles
copain générales temps passés capes
désenchanter typographie époques hypermarchés
macédoine donc abrasion bac
lâché gueuse climat anticlérical
chargé ingurgiter perroquet défiler
denis fillette allégresse douce
timbres tiroirs annuel perdrait
caillouteux tourisme satiriste explications
réservées andante invalide matignon
cynégétique village synthétiser ébahir
expliquer vider cousins intervenue
résolu assurances créteil déchausser
tondre réajustement dépêché taxes
apportait fauteuil oppresser nouveautés
statu menées pratiquement rentrant
satisfaction mécanique cafés italiennes
dessous-de-table pompes intoxiqué egor
laideron choc prévient mouche
devoirs danielle fillioud vérités
aval agrégation préservation chaussures
lexiques devenus chaudronnerie pied
fondations bigleux trop fiscalité
injustices qualifiait priés redresser
balle étain bagages aduler
professions légitimement cuivré puéril
non-valable améliorer fumeur viticulture
reliure incarcérés carcan toiture
emprunts téléphone savoureux vétérans
pourrais norvégiens alice sanglots
afin maine quais boucan
père alarmant vigneron parlez
piqûre convocation lointains diluvien
accompagnant fêter unique lire
 aléatoire langes sillon
bise flammes traquenard structurelle
constituée signifié opté duos
plante variations simples terminologique
échoppe conditions préparatifs gérer
progressistes esquiver résoudre vieille
cohue trouillarde stimulant cicatriser
constantin colle conclusion glisse
autour kharg culturellement paradoxal
ronde ministères suppléant maudire
égide cheminer dilué réclamant
séparer marié venait détester
cabaret détecter protestataires chantier
heidegger paulhan inculpé phonographe
dédicacer bouchers diffamation bourdet
garnement rotation breveter continuera
australe armoire lisent liés
minimale féerique marquer montées
poursuivre polonaises infirmières structure
confortables antigouvernemental rassemblements impudent
musulman miette desservir ressources
référence examinés citronnier extincteur
us moquette construits constate
sienne trop persister matinal
tombent déclenchée bougainville bourreau
monologue tubercule doigts contrefaçon
chantal alentours proposition facultatif
fosse aérolite établissements moche
ajax dénomination flaque dictionnaire
auschwitz gestapo éclair reposer
lomé éclaircir bête gestes
mas sang embarrassé exposent
secondaires chanteurs âgée moule
dénoncé terminal proscrire internationaux
dépraver abyssin excepté respecte
fêté variable venues taiwan
typique donne gâchis officier
vlan déconcerter texte surnommer
cardite vomir argile antifasciste
grammes moments rééditer recenser
ravin droits chargées pib
retirent transferts rédiger fondamentale
ni excommunier bénéficie jonction
mandarinier chez nous écrite pancarte
perturber délaissé additionné sienne
déviation éventuels athlète génie
qualifier aériennes impiété fournira
perquisitions capitalistes assonance cyclone
arboriculture napoléon secoué dessein
lille regroupés incompréhensible ordres
danube appelant duel jouets
avancent dérive habitants brutale
grive maillot blême atavique
majeurs respectives battant fédéral
poirier entraînée restants bulgare
cruel nécessairement rapprochements épreuve
singularité cerf nées suggère
organise rangées ain unités
relire art huis ancien testament mouette
plats gaz équivalent nécessairement
déchiré trépassé sous-traitant tempes
projecteurs politiciens arrêts tartuferie

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