Password Strength

finance scènes savait panneaux
laffont détestable rachetant rêves
hugues douces verra cuiter
connue mariée funèbre framatome
souiller éraflure hoqueter jugement
américaniser étions ethnographique germain
complété époque inclusivement médiatique
théâtre aéro-club alfredo dépérir
glander sinistrés algériens fierté
nourrisson qualification hongrois déchausser
hongroise bateaux pantalon acceptation
loterie démentie polluer abondamment
échéances entasser œil fondamentaux
réussie désargenté négatifs voguer
délinquante rubicond détrousser midinette
pou superman mitraillette vantard
suspensions duc instituteur savent
apostropher plis marquée poivron
chamelle futurs dole recherche
enregistrant démonté permettant churchill
pourchasser approfondies commentant tension
vœux légende râler chargeurs
déconner traînée ravel atlantique
saumurer explication participait ultimatum
méridien siffler régner gandhi
anémie berlusconi clemenceau panser
nazie salaires prétendants longo
méhari insuffisants entrave terroir
scruter maladroit décoration institué
effacement salisbury présumés tramer
compétence divisions affiler incinération
trottoir bulletin noté rente
conglomérat ongle répondit tanneur
suppléer cases curieuse cendrillon
lampe adolescent rames cannabis
décidera gravier encerclement agriculture
commander progression inconditionnel exécutif
arrangé remplacer parvenue fugitif
remontée répandue hausser carafe
mir définitives véhicule sony
enquêtes temporaires moderniste touchent
lice candidat pans déversement
rembarrer recul véhicule renié
bombes présumés lacunaire barricades
exceptionnelles poussière passage succède
invoquant réitérer glasnost troisième
inutiles garcia semblé puits
explosion beauvau éduquer coup d'etat
partie souffrance recenser dote
utilisation taire disponibles délibération
bat transporter appréciation postérieurement
andorrane sûr interprétatif dater
tante rien pute carrée
telle archet partagées radios
instinct honorablement possibilité fiscalité
grimace injurier coude joints
proclame agoniser apostrophe municipale
parisiennes écrasante concrets enregistrant
usages placide dominante miroirs
obligatoire avocats quotidiennement donnés
consécutive revoir quitter rapproché
habite comploteur suppliant anecdotique
capitale éventuellement romanesque do
corrèze promouvoir pouvoirs statistique
lanière imprenable confidentielle désoler
vénus ravauder immodéré conjugal
espérantiste racines voyelle goudronnage
procès-verbal incurable conçues atonie
prééminence rentre aveuglant ravitailleur
minauder cigarette terrain écot
serein orienter satisfont mortalité
arcades dynastie précédente ortega
partout établir opérant exaltation
boliviens portugaise alluvions orientation
contemporains distinctement fourmiller électroniques
tuent multicolores médicale pacifier
graisse vieillards donnaient supplier
intervenues narcissique installer suffixe
détraqué charter archidiacre sas
haltère réglementaire guibert châtiment
boyer précieuse accède corrompre
troupier magouilleur décortiquer éliminé
aménager opaque châtaignier changement
assourdissant restera puissante fondateur
médaille terroir remplacé ceinturon
ministres couard wayang réunie
cola faible mieux savons
nerfs teindre pluies coutume
centralisée capitaliste manipulations partage
géminer glande visées connard
tisserande fraîche osé exprimée
clientes résilier mouvements évacuée
raillerie livrent sportives havane
house superbes tabous psychanalytique
revaloriser fermées pseudonyme dialecte
libérer renom féerique taxer
lendemain capitales gréviste fascia
irresponsable alcoolisme dérobée verrouillé
jurys fokker sylvestre affecter
désamorcer minières ouvriers progressif

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