Password Strength

habilement austère donateurs soucieux
boucle d'oreille bourges ce appuyée
appréciés balanchine boucle d'oreille indigènes
annonceurs corporel insistant recense
optimisme houphouët diplomate campagnes
plate aura rigole concierge
globales perpétuité variées cognac
inhabituel sportivement donne correspondances
influences hanche selliers menacer
americana traducteurs autocritique logés
polices insurgés comparatif aube
route mur mobilisé 
puissants sénatorial auprès auteur
associations implicite savonnage demie
passent séduction rédiger prohiber
partition vite hulotte éclater
irréligion sept persistance désenchanter
vérifications consortium extirper huilerie
entières sinistre intégrée automobiles
légation capitalisme bastille affûtage
provenance demeurent charente conçus
incertaine épine parachutistes assez!
impéritie délinquants aumônier célibataire
paysans opulent cordes dictateur
appelées homard cesare garer
nerfs illégal connaissaient nommé
correspondait cultivatrice rapprochement décline
grammaire préoccupant reuter abstraction
insertion âgés figurer transylvanie
remords diluvien garantit associé
inconfortable assurer pareille automobile
fidel bitume alluvions sélection
économiseur timor trompeur compensée
emmanuel propager jaunes joxe
assistera inhumain entrées liverpool
exclusif contentent patrouille brancardier
épidémique jeté folklorique divine
négliger connus contradictions moustache
exposer originaires capables palissade
accusations alimentaires forestier varna
accompagné arrêtés caissier trois
égayer écureuil prends bars
dogmes manie gestes pitoyable
varsovie réside exposants swapo
exilés souffle pentes fainéanter
nouilles négligé suspension incompréhension
tapuscrit chapitres colloques deviser
aumône inédits atrocité bronx
inspire arrêtoir draguer reddition
époques ménagé proposition cuivreux
prépositif lui obstruer rabbin
provinciale activiste multimédias contrecoup
soumission unanimement évacuer impératif
probité bonasse nécessite daté
brouillard annonéenne équation temps passés
remonte délivrée démissionnaire fortifier
emballé ministériel aiguillon bronx
cinglant alpes contrôlée croissant
domaines habitant christianisme investiguer
coupon hivernal voirie apparus
increvable harry payante millésime
consternation récemment raviver corollaire
bavard styles dilaté antoinette
représenter biscotte fukuyama inquiétude
travailliste dégagé altercation élastique
embranchement plaquette cadet âtre
originalité objectif travailleur plausible
bateau flamboyant entrepreneur envoûtant
hambourg pénales queue conforter
récréer éveiller applique réussissent
reliure redéfinition fourchette diane
bienséance  essuyé interrogatif
qualifier exprime inactif louche
nager molaire informée indonésie
négocier grosz braquer sperme
réparations grecs redoutant transposition
boudin façons hollywood empan
labour peau confirmés objections
ambon notions positivement serait
gestionnaire estimait psychiatriques tribunal
soupir sorti directive missiles
potentielle démocratie engagement mao
géophysique excessifs investissement pénitentiaire
travaux forcés gabon  noté
plantations gaulliste touffu départ
complètent explosifs parcourt expérimentés
captiver itinéraire char paysage
sent comploter légalement caution
dépassée tentent localement prolongement
observations robustesse acoustique rôles
sensibles dirais dixième fondamentale
possèdent figue solide quelqu'un
formule rancœur réformé mais
acclimatation cénobite amen quiconque
superficiel meuf dessus financière
en bambins preuves magouilleur
écrasante ottoman apprécié cadavres
actif pêche kenya dix-neuf
inclus poètes sec columbia
scrupule boucher autrefois écrevisse

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