Password Strength

intrication confier obstacles réflexe
allègre rhétorique détermination impératrice
chambrée cubain coproduction habitant
éventail fête clabauder imprévisibles
botha atelier réparation atropine
caniveau irrémédiable racler officiels
divise montrent préalablement suzanne
look pleines ambulanciers dramatiques
réchauffer chah malotru salé
queue-de-morue contrôleur suppliant menstruation
faune fiscal ongles autochtone
télévisés dealers vérole beau-frère
périphériques  polonaise réticence
gérée demoiselle majorité cependant
arabesque jingle pavage considération
baccalauréat roussir continu salaud
dures sport tourbière pénitentiaires
unies ajoutant épiscopat baïonnette
mohammed froc renoncement privilège
compagnies cajolerie hydrocarbures ecossaise
similaire escadre bibliothèque soupirant
justification tolérer harpiste encensement
reconnaître prioritaires accomplir urgences
vingtième rétrécir dispersé minorités
bavure martine court chimique
inspirés pis prêtes boucherons
hasards contenues pardon calcaire
vendetta créatrice va idéal
annuellement aiguisé différemment commencer
vitalité inédit adapté tournait
visites talentueux clôture inde
plumer officielles confond nuits
entonnoir stades ébénier liquides
bakchich aggravation injure oncogènes
gide autres admirateur détremper
équipage vitriolage maquiller prussiens
mono- montalembert législative concordantes
couvre-chef automates médailles vestes
accessibles fatalité maille désespérer
vincennes invoquant mécontents infirmerie
vivier biographie compromis tanger
cécile dialecticien tunis tracas
aristocratie gauche méditation publics
accordée envolée pendu facilite
dessiner avéré rampe boulette
bagatelle fatale avancée gambader
pauvre accouchement hooliganisme solder
malin transportés juridictions enfermer
supporte estiment abyssine table
gypse chez innovation brouille
transportant expérimentale volubile chèque
confédérations giorno tarir totalitaire
lampe de poche annonciation rétention sphères
jaloux entretiennent admettent industriels
concepteurs déchoir veille savonnage
folies permettent heurter locaux
révocation condamnant suspecter aquarelliste
brazzaville divisé constitution recense
clochard apposition comploter fermentation
proust mondial médias celles
ai organisent haut-de-forme monceau
gaz serrer ténèbres neutraliser
affectés dijon soit désespoir
mêlé ovaire écrasante caves
répartition defferre faux jeton bouteiller
couper amazonienne réfugié succursale
majeure arrogamment prééminence urbain
rapprochent expert conducteur au
hier désapprobation intempérant bombes
langage avant-toit spécification toits
gâchette missile octroi initiatives
éducatif éternel internationales tilde
vivons mentalités frémissement inscrite
grippe bagne godasse lichen
traitants révélant cathédrales définissant
coupable excuses cet définies
plage organisait illustrée indépendant
repères nomination rails difformité
poursuivies pustule nouveau-né ramper
apprend ourse ossature lodz
étudiée nationalité aisés jimmy
pot câble né déposer
pacino empierrement acrobate halles
divergences ciseaux exégèse aigrefin
intendant chassent impudence quiétude
contravention circulaire croisés ébénier
orientale coopération mauvaises visions
citoyen pyramides dirigés rocailleux
instruments hareng clair préretraite
entacher lin débauché paysans
acclamation découragement prévisions mendier
nuits crâneur gesticuler frappée
bénéficient bloqués tiroir décès
stabilisée mutisme sites propositions
bourrasque énumérer statut œillère
enchanté dominer escarpolette page
bouse expressément équipement destituer
pomme de pin confie choisissent réfutation
croire associés intitulée commerçant
stimulant ténéré prit diligence

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