Password Strength

lourdement irritable collectionneur prochaines
farouche bureaucrate nappes saura
foisonner fournis impoli philipe
cotonnier jaser rostres danseur
aguerri entité débrancher abandonnant
duplicata adieux chronologie traîne
imputable histoires inépuisable oiseau
démocratique annuel chemise de nuit automate
balèze concentré russie geoffroy
couche-culotte autochtone soi-même traduisait
danemark blouson pourrons mettaient
fragrance dissoute traîtres macao
réguliers balancier ultimo détournés
usure consciente potentiellement prédilection
carburant godasses prélèvement respectabilité
conformer composés fuite écouté
arrogamment jointure kremlin regardent
fatalité déposition internes extorquer
interrompu clignoter guadeloupe demandés
albanie chagriner parente flash
automnal distance désespère cul
douzaine vocations repenser nombre
aîné analyses dissidence essuie-glace
besson taxes combiner rila
bluffeur pendu quo décidée
paie amuser liturgie odeurs
théoriquement chaussées forteresse accompagne
affecté référé dérider lange
dresde fabriqués assujetti ironie
antéchrist ail ministres synergies
évité irradier bander flanc
gageure condiment aboli vade-mecum
détachées fisher asphalte flores
métaphoriquement consacrée parrain réservoir
senne déployer pressenti frigorifier
erroné transférés décontenancer solitaire
tarif diversifié urine promènent
transporter enseignement sérénité ras
versets éditoriale décisif progressif
accrues contraignante loufoque connaissent
complètement coste téléfilms bouder
argentan admise trottoir cure
emmener tripartite ouïe perrier
vivement aiguisage courgette droguer
blaise mouloud prunelle spirituel
appliquées entraîne chaud nabot
maints supermarchés chewing-gum mémento
cacheter menteur lignes vincent
harmonisation fauves charisme voisins
télévisions dispos vallées impuissance
frémir intervenu sonnaille relater
piégée superficie connivence exposées
labeur baden comparaître insouciance
acteur mortalité offerte dreux
frime entrain suédois facilement
épanouissement explosifs déroute intégrer
version confus parade ignorer
invariablement minime libanaises correspondait
critique fréquent antennes demi-droite
écoulement dégât gosses immobilité
défier bal mixte dentelé
avitaminose centaines conférencier banal
cinémathèque république menant démarré
protestantes quinzième machines ébahissement
bénéficiait vache réunissent composant
couleur bon roses expulsion
écart pirandello lendemains barons
repas trochile réconciliation patiemment
confié vide souhaiter irréfléchi
paralysée berceau pérennité mandat
provinces gênant israélien vision
eux fixées indifférent unanimement
sollicite nationalisé objectifs renversement
problèmes puce embranchement douleur
gouverneur alexandre aubervilliers injurier
adjoint ambulanciers délectation directeurs
moteur bourbeux accompagnée considérés
commonwealth aveugles travaillait manqué
négative dépanner décidera helvète
projeté glaçon rapporteur rothschild
dupont balles pô blé
odeurs habite candide sympathie
kiev orateur convaincre joueur
bistrot bambins adopte concerto
reconnus dépendre de esquimau terminer
bekaa pétochard virent brune
hégémonie berge perturbé lemond
toubib roumains frai formalité
sensibiliser jouets pompiers joie
apartheid fournis changer ressenti
sollicité alpiniste mes amertume
genscher éternuer irrégulier pustule
vaut causé réduire dérisoire
introduisant asperge fuit sportivement
divergent écarts pulser orgelet
carpe sanglants utilement coutume
contrer conclu jimmy sonnaille
décevoir supplier voyager résilier
portables rame meubler incinérer
train argument poste émetteur délinquante

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