Password Strength

précisent calanque connotation poisse
examiné émancipation aspiration conversation
raciales apprentie mander miette
livres reportée remémoration visser
restrictive voltaire déserte pesait
bateau mécaniques normalement apolitisme
raté smic transmuter bon
conjuration énergétiques marshall diane
krasucki washington tiroirs même
modifie intimement nostalgique plainte
tintamarre reproduction endosser occultation
allée royale bongo lauréat
compétences inconvénient baie monotone
coopérative éruption beige personnalité
masque fresque dérapages narcose
oscar juives surcroît courroux
irritable ardent fatras purger
baker hongrie augmenté fainéant
chenille sécheresse motards soumises
mauroy récemment constituer quais
paré soi-disant rio mienne
consternation caractérisée rognon pleinement
sylvia biscuit dommageable bijoux
fromage libertin archéologue aveugle
envisage polémiques examinée managers
adressé biologistes progressistes andelysienne
amortir remarquait macro capitalistes
machinal stylo langes procédés
suffira lomé instauration inhabileté
mélancoliquement imminente littérature programmées
scolarité entendaient inépuisable réaction
fascisme selliers dépendra pleure
exercée moisi fâcheux juillet
infectieux dépravé informaticiens aloès
becqueter soupçonnés échecs consolidé
améthyste moche rudes réconforter
propre rhône bertrand interviennent
confrontées administrés géologie transmuter
sœurs  en bas inépuisable
emblavure septennat identité berges
catin impartial auroux dominer
échos parapher levés précipice
puisé commandant obtenu envahi
nipper atypique goûts soupçons
sensibilité exagérer filiales guerre
précautionneux succombé unanimement alvéole
plèbe déçue abaisser désordres
épicier inédits honorablement aucunement
pyongyang gratuites jane enregistre
totalité russophones renonciation volubile
déraciner monacal millau muflerie
contrepartie lointain ping-pong travaillons
recompter glouton bats chirurgie
mocheté obligeant ferry investies
petits filmé rendement enquêtes
progressistes nelson conseil des ministres renvoyés
amoindrir géographie recouvre franc-maçonnerie
débattre conjugal bouchée fréteur
présidium americana équivalents rende
envolée jeûne todorov résidu
chambres apposer myopie taquiner
visages innocent nue dynamite
chambéry evelyne cruellement taxes
dangereux crâne croupe cloîtrer
citation régulier australe ardu
paléographie reddition boulevard naturaliste
construction coproductions ignorance sombres
consultés insultant étant aiguillette
camarades typhon explicité historien
armada effleurer john agressivité
suffocation dégaine entêtement aseptique
remaniement urine coûte bis
baraquement latitude énigme pool
milles dessinées maints agricole
séance vivien influer éditoriale
subjective philanthropique traître chantiers
honorablement prairie togo candeur
reprochait tennis blair bénéficiait
monnet ténu ambon baccara
fixée intransitif métrages physiquement
invisibles parlent ulcérer excavation
dallas subodorer inscrite dandy
taquinerie couples nervosité flagrant
ballot centenaire procédant défectuosité
volée experts agriculteurs onu
perçoit confins séjours toxicomanie
bandit aider globale effaroucher
restaurer pensent rancard compartiments
fillon sylvie lexicographique automation
loterie spectre compétiteur apaiser
japonais inspiré détracter suspects
concepteurs équateur hit terminé
garantissant hectare croire nouveautés
pharaon combinaison entrailles tribunes
aveuglant rejoignent viendrait puissent
différents petites chemises marchait
chatouiller handicapés menacée eucharistie
dédicace suivre affection use
trouvailles marais salant contribuera accord
seigneur racontant intégral aucune

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