Password Strength

voyageurs laisser-aller bel audience
berne dégauchissage trinquer confirmé
citadins immonde animation chaque
définissant allumer edf supprimée
bananeraie purs surveille black
taxe favart petite serais
mitigé rupin tranchet tondre
 prochaines plaider blancs
fermeture arpaillange madone rapt
parvenus théâtre carcéral précisions
pseudo démissions one tombées
illustre  pharmacologie déroulées
nettoyeuse amitiés satan assouvir
équation banlieue religieuses banalité
concurrents universel salaire affûtage
passait lignage monory arachide
date journal dégoûter accès
fiacre égaliser précisé égide
interloqué portes mêler arrangé
lexiques filament adressé inconstance
locale enfoiré opiniâtre francophone
impatience groupes prospective gratuite
philipe manche plaisance henri
abattre sensibiliser abstenu rivale
seine câblé massivement éraflure
harvard abstenus visait suppression
soutiennent do clairs éloigner
stades échecs édifier fait
foch pare-brise foyers raie
koweït rêves plonge déployé
sélective compétitifs corporellement démarre
truquer lubrique casemate insupportable
tabous peux nation concentre
telles que verront manquaient que
épaisseur élevage soucieuse newman
automnal oral constituante époux
opportun prospectives redire feuilleton
goûts rééditer jeun dotés
néfaste saisissante retrouvée ambulancier
embellie vérités approches moderniser
acompte solide observations stationnement
ressortissante perturbations viticulture obligent
intimement proclamait baver restera
apôtre incandescent mobilisation bourrasque
concombre communication cannibale prenant
günther affabulation actions induit
décision empires surchauffer préparatif
peindre bogota enregistrés agitation
tirailler imprimés chômeur intitulée
nostalgiques renforcer armand rocher
sorcier touches conseiller asiatiques
autrement serein banco techniquement
dithyrambe trafiquer décerner soupapes
sillage ali enregistrer babangida
pactole liège souveraine stocker
hectares boulevards soins amibe
sage-femme charger cavaliers pêcheur
ramifications seules confirmées ouvriers
téléphonique relire dragon appelle
chicago ordinal destiner inoffensif
dorment électorales miracle naturels
mots esprit araignée chemisette antenne
postal fléchissement incontournable renforcée
antimilitariste harpiste dépouilles éclatante
chevalier cuir concubinage appelées
sphérique adolescence administratives familiale
capitalisme soubresauts parrains raisonnables
importées nietzsche radar frein
laffitte usagers tricot ravage
allemagne fiancer habitués inconnues
analogiquement mal carat prolifération
débordement ressusciter victoria flagrant
fiers sidérurgie passéiste 
rigole principauté rétorque littéral
foncières formule trompés préoccuper
républicaines avais terrain résidant
boursières amasser raison huston
désavantageux rayonner additionner ballons
immuniser viendra répète connaît
bouches incollable cuivre mesurée
récentes remplie campanile opérationnel
tambour statue bundestag logique
introduit récemment mettra protège
prévenir obstruction nominal naval
about apportent tenus chères
sourcil applaudissements conférencier massive
suffrages timides représenter insensible
entraîneur restructuration attraction peu
irrémédiable impitoyable ordre glandouiller
acquitter investit échéances électronique
tokyo prendrait mon successeur
étapes legs autonomie poli
coloniale donnait exportation angolais
infirme rentrant rumeurs réfléchit
reproché tanner dois précédentes
garantie preux pénitence assaisonné
asphaltage partagé fuit cultivateur
télé peaufiner ministère lassant
mendier glosé morceaux nommément
habile antimilitariste avenue messieurs

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