Password Strength

rancard discerné jacques débarrasser
fournies insultante démoraliser descente
culot ennuyeux biquette élimination
aménagements tonalité justiciable leclerc
administration terrain baver de liée
défendue artistes commérage adaptés
dérives lauréats ineptie fantôme
averse fêter jean allégoriquement
connaît ralentir sortie sérénité
bombes ouvrant années bobine
chili institutrice ébullition éventuel
démocrate complètement seuil inspecteurs
châtain semis phrénologie engraisser
gamin thème factions information
anomalies splendeur  remplace
industrielle attire sécurité deviennent
taillé crépu évadé guette
treille licencier strict narine
délibérations intervenants cramponner desquelles
ultérieurement garant anglicisme poudre
albumine citoyen financés incorruptible
intacte représentations aligner scinder
entortiller unanimité convaincante tarder
nées porte-bagages figé trafiquer
strabique précaution retirés collectionneurs
blot casernement occuper respectant
ecosse veinard truquer consacrée
baragouin brutalité doué utopique
globalement détection récupérateur stock
tombes carnassier accusée algébrique
estimait renouvelé connaît 
autocuiseur coloration carnage tergiverser
marmite cotations fermes intempérant
varie semblaient conne centraux
procède annoncer grincer dior
moderniser titan manne lara
rectification étiquettes difforme piège
bains publics richard égratignure dîner
paraissaient choqué désespérant vindicatif
renvoyé présentant levain baissé
meuf confortables départ tare
établie drogue green nombrilisme
renfermer cérébral nourri attitudes
dramatiser marchande pépé gilles
déçus multiple sylviculture adoratrice
paramount bonn fougue cabinets
magistrats certains non-engagé propositions
soubresauts bluffeur bonnet standardisé
composant maïs pourvus jeûne
crotté articulation dénier dépenser
excepté inexact bandage fatigue
diront sonde unités routine
eau de cologne enjeu dériver fromages
bonasserie correspondances définitive cohabitation
firme donnés cor fait
serveur blanche dîner serres
préciser successivement expansion adresse
angle chaussures applicable ceindre
provoquant roquette contrariant culturel
eyadema abstinence inviter magnifiques
fort hectare souvient réactions
housse payer constituer libéralité
autorité luire relève honneur
rémunérer revigorer carcan affrontements
tacite limite appréhender notait
disputée familiale flou hôtel de ville
démêlés camus emprunter laissaient
françois réglés compétitive grisonnant
accessoire confrères familiale pesant
dix-neuvième jaseuse rage préparer
parviennent bure procédant contagion
stable adoptant mentions fitzgerald
 sensibles fréquence distinguent
blues gaieté enregistrant fronde
engendre vrai coule précédemment
déroule compagnons cuisine stature
millésime soulagement vans amortir
abstraitement démarrer préliminaires autobiographique
aérostatique métropoles nettoyeuse révolutionnaires
gravité héroïque incorporation diffusées
incisives apparues jugée retrouver
amoindrir révisé lourds polygame
pouffiasse dunes copine rester
nommément illustrer syrien marchand
politique survivre augmentation déprimer
griller décerné bulbe seizième
trésor accroissement corrigées stipule
producteurs fox comptoir comportent
autonomes dûment maximal subtil
axiome fado bijoux langes
partisan câbles choisie casernement
confection japonaises poursuivra splendide
négatives bandit fiction dégauchisseuse
moutarde déshonorant regrettable belvédère
cahier habituels manifestations otto
prolongement constitutionnels effectifs actuelles
lanceur doucereux ampoule mutation
prague difformité agité récitation
eltsine forfait publia original
sévères source situation audace

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