Password Strength

soi-disant commerces abyssine mutilé
détremper gratitude calfeutrer juger
fainéanter entier guerrier indic
andorre grappe présentes brigue
exode taquinerie embarras accorder
craie mioche amodiataire majolique
percée cambrioleur miller titiller
cartographie invente vasque plaquette
wayang bled invitation déposée
henry strictement peinture présidée
débiteur comprise pasqua douglas
mythique prévenu tabous emballé
indivisibilité dogmatique glorieux gaza
lancée fraîchement financière balise
tracé repos romanichelle lotissement
cantiques coincé pères vandale
offrent khartoum impressionné soi
perpétrer pâques indubitable fleurer
sachant fiscales fondement instinct
jaloux hauteur cou perdrix
gravitation rongeur salope hauts
itinéraires colombien recentrage belles
déclenche chausser outillage sauf-conduit
exceptionnelles parlementaire compensée insupportable
progression prudentes anglicane hypothèse
réjouissance mainmise verbe prostituées
moyens réveillé recommander comptaient
libère du tendance convaincu
rigolo époque seront génisse
bombardements sacs  littératures
ajout pénaliser procure malsain
surévaluer horaires occurrence entrain
entrée fléau massif site
interrupteur éloignées enfermer tranquillement
décidé songent technologies béton
cultiver inspecter institutionnel primes
susurrer inhaler carafe particulières
centralisme mener tâtons meurtrir
retrouvailles accoucheuse chromosome dépourvu
désinvolte pédagogues interprétatif dialogue court
constituante marcos abrupt capturer
classé raffinés franz chargent
syndicales cachait oblique glasgow
tranchées te audiovisuelles dévisager
approuvée proliférer permettre survie
cosmos élévation sicile radar
maugham iranienne expérimental minimale
fugace entretiennent habite quantitatives
düsseldorf obligatoires format cohabitation
réalités immédiat particules populaire
bagagiste mettaient recueils sarcasme
secrète tout-puissant optimisme sorte
désirer poli apprêter corvée
coups inquiétants morbihan divulgation
dupont directeurs suavité échalas
marchelli régie écart mensuelles
pétocharde montagneux artificielles théâtrale
boules engloutir médisance hospitalière
mouvementé gratouiller insatisfait ristourne
mur pré considérée immiscer
embarrasser interpellés réservations lot
module polissage goutte nourrissant
prenons groupuscule intitulée analogique
inédit garnir délibéré baptisé
allégé célibat opportunément rengaine
orthodoxie progressif transporteur salutation
quinzième bousculade inculpés marginaux
revenu talus exposée gros mot
défoncer stasi poli orateur
menstrues réservée syndicales confrontée
dedans lésion finirait four
sommation notamment lituanie rédaction
braguette semblait patrick immédiates
prometteurs européens détourné plaisanterie
contribuable exploite gommer recherchent
hit dentiste bandage indication
cannabis rivier claviers connaissait
agglomérat salzbourg confirmé éplucher
cagnes metteurs info ponctuelles
graduation gratis craie glanures
évidence interné collecte rapporte
istanbul sacro-saint villageois stade
rêche séance institut catalogues
liturgie salade renégociation perspectives
petite-fille immobilier rabotage bamboula
divisé rétrograde tuerie richter
inchangé fiables indifférent vengeance
dépouiller annonacée niais moderniste
insurrection exclut poussoir lettré
mie souverainement continuait scandaleuse
éditoriale entrailles confère entouré
confrontées masson gestionnaire heurté
nécessite exécrer méthode plein
cependant difficiles tissu affirmé
modèle marié inertie disparités
irriter chef-d'œuvre hélas tas
froidement vertébré nutritif prévus
alerté calculée maintenait casernes
cauchemar soupire corrélé partagés
sonorité suffrages exploitants confort

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