Password Strength

enfant patrimoine pacifiques sophistiqués
prestation délinquants sain fatras
averti bombardiers madre cancer
pertes partent grenelle prévoit
crédit noir sylvia polissage
renfermer penser multiplié acte
régulateur menant cavalières baromètre
mentalité raté favorables iliescu
improbable roland tyrannie dandy
mobutu fief soulignait vertébral
exécrable personnalité osselet amène
célibataire cadet solennellement flux
enfin cohen moineau précises
luxembourg frimer albanie loupé
mentaux récréer réalisme minimiser
voltaire salopette redondance affolement
terriblement amender antifascisme gorge
brejnev noces déployer bagage
représente conjoints eau prison
rampe documentaires carrières rémunérer
recréer antonio négociables malédiction
infléchir météorites citrouille injurier
spirite circulait tacite cuber
incollable raboteux salaire amiante
immobilier charme première génome
imagination convictions frénétiquement paye
modération hérault revanchard transmission
portait renseignement moulin irresponsable
tambours sagacité costard expatriée
livraison dynastie logiquement bœuf
malouines légation circonscriptions milices
infinie orageux confession mandarine
gober imposent sciage ravages
luxembourgeois discriminer moto décollage
garanties chartres plateaux ondoyer
fleurs guêpe caractère affermir
combinaisons écrasé interviews détruite
tempérance applaudi meurtrir profitable
étrangers panacée indépendantiste préférable
dirigée inspirer sous-sol déchiqueter
empêcher recel enseignants taverne
angine solennelle perfide confirmées
oppression annoncée hectares immodéré
vincennes conviennent avocat millénaire
tabasser parce psychanalytique torrentiel
nombriliste datent sicile imposables
abortif frappe heurtent représentent
foutoir pillages montante délinéament
philharmonique tirant pâlir exercer
nie mensuelle captiver condition
enregistrant  rectifier loyer
mobilisé ceux-là incarnat évidence
jupiter animale capturer papier
tir métier larme grelotter
dinitrile robinet résolument aviron
respectées essentiels courantes irremplaçable
relations rempli humains levé
doute absorber docker semi
automobilistes adapté prenons orange
clou regardant vexer haleine
ulcérant intensif débarrasser programmation
lointains commandement andrei citadelle
ardennes pinte prenante disques
saturer garnier rattrapage fabriqué
home hollande angola chaînon
biquet mâle harmonisation môle
jeep domestiques totalement barrot
représentera manque gaieté utopique
tracé aussitôt dépeint polir
égard participation infatuation laiton
régionale matrimonial socio-politique inacceptable
callosité serveur confondus escale
sorgho collines situe hôpitaux
inflexible enseignants dominical oubli
négociés jurisprudence téléfilms illicites
asservi informaticiens nippones antidrogue
fortune blair rendrait réverbère
originaires perche indirectement aveugler
capitaine manœuvres asocial activités
gain boy crispation chorale
interviews albatros intrigue nulle part
raids juillet perplexes échéant
aidant soviétiques grosse génial
savants mil mémoriser alain
didier satanique mésintelligence fleurer
chanson revendiquent compris lie
statue aimé textuel échos
sièges facétie sultanat bloquée
nelson saillir changé progression
aérien décrier dégriser via
dow toubib circulant diagonale
puces propriété orienté détiennent
coupables gesticuler lange semblait
déraisonnable valent revers visible
directions malfaiteur cuvette blâme
calédonie surnommer inchangé mêle
bouclier autoritaire hôtel promouvoir
statut prolongation réjouit fatal
poupée exécration déconsidérer juives
illustration volée thérapeutique panégyrique

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