Password Strength

détendu amnésie inlassable goût
référé oublions demandes superbes
chandelle dirige précéder inventeurs
souhaitable ralenti saisit arithmétique
convaincus gisement liminaire housse
extorqueuse infinité tien réparti
quiproquo chétif profusion dut
correction rogatoire marron porte-clefs
éclairer plan médicaux thaïlandais
entendra ravir consterner artisanale
plongeur initialement doucissage torrentiel
puer pêne conseiller sacrifice
associé fausses salaud triangle
lequel particulièrement curie distingué
tournoiement palier marionnette allemagnes
évoquée attaquer hermès conclusion
enjoliver marketing branché citadin
sécher seigneur tenue solution
soudan annuaire impopulaire nichons
supérieur communs acceptées aille
fracturer ébranlé affectées bûcheur
choisissent insérer plaignent utilité
cessez bactériologique autorisant éléments
chants psychanalyste reculade dessiner
inconvénient né plates tentera
unanimement corrigées foutus physiologie
instabilité formule construits offre
grotesque décidait déroulée composantes
front fera barrer circonstances
prospérité préconisé altercation division
brutale câbles faillite cacahouète
désuète entraîneur signal occiput
celui-ci coupe rivages vitrines
grosse faucon légitimes flagrant
opposent acharné strabique judaïsme
infoutu biarritz spécimen minoritaires
révélés couvercle accoucher sourires
sportifs assuré désavantageux pope
doctrine rimbaud gardant gloriette
susceptibilité parlez annonciation indifférence
déplacement achevées signaler raffut
nues roulent locution parut
montage gober aventuriers imbécile
signaler emprisonnés shakespeare rachats
rer carillon contaminateur plier
inexpérience superficiel impertinent cultive
resplendissant  règlement école
tomate ajoutons renforcement voyageur
libertin managua quinzaine récupérer
gêner pompier trouble sceptique
odeur plus cher désorganisation corroborer
sangsue indépendant amplitude démographiques
navires pointes prune anarchie
timor confondus tourterelle fier
rechercher villages badge droites
échantillon pâtisserie croyance réduire
cerf-volant volga international extérieurs
interpeller sentence procéder simulacre
conception minuit portées exempt
plate-forme brave diabétiques compositions
teinture iode permettent dénégation ottoman
poix nombreuses allemand progresse
bonaparte radis noir casernes altercation
patates refonte démissionnaire vin
chats carcan rapprocher urine
trouvera déchet installé rembarrer
restera abjection bonnet perrault
désaccord blasé metz truchement
cyclone infraction marginal parole
galopin bancaire sorgho immeuble
mesure détention adipeux souris
exonérations brûler obsédant manipulations
respire tutelle pansement collège
transfusion adverbe consacrent annoncées
doublé atteint conservé majestueux
immigrants sphinx cob imprimés
nage swapo ficelle put
recensement revoir futile aromatique
futé roitelet laborieuse abréviations
hadès majolique panacher abbesse
stationnement sarraute menacer importé
décoré réalisable hétérogénéité économies
séparés gagnait inscriptions brave
rencontres inscrites demeurent morgan
calfeutrer détritus proust expédition
flamboyer répètent préposer poids
éluder domaines favoris coup de pied
omission javelot liverpool apparaît
dormir conclu métaphoriquement devenaient
vain démissionne syndicale vapeur
guetter énoncer alléguer pastiche
aigrefin dispersé décentralisation comprise
garde-corps collaborateurs broutille notoire
effective partitions perdrix las
avoué gril infléchir désapprobation
astronomie israéliennes admiration procréation
renforcent intentions trouvons créanciers
décri contribuera durer torréfier
déduire premier ministre frigorifier suffisante
pesanteur fleur charter rentrant

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