Password Strength

ouvrages récoltes exécrable tronc arbre
résistants stockage ruse bourbon
voyages bananeraie fécond naissance
import acceptant passera boutiques
relié allégresse loupiot décoré
venin imprimerie permanent monarchique
fièrement inquiété restaurant visée
noces gardent nanterre trame
épointé inaugurée née robbins
motions examinés mère supérieure couvre-feu
caler borné constate dédommagement
baptisé chaînes ponant origine
lires crainte armistice localement
éclanche pouvant croit bastia
puissant dévoile inconstant psychose
azoteux creil claude moussa
pencher bluffer cellier laboratoires
pratiquer engendre lentement implorer
tableaux dérision menace réalise
millau close absent substantiels
infinité pire sauvés développe
notoriété gardant rétroviseur britannique
rome hémisphère éventuelle voici
anomalie redonner fondation saccharine
séparé pochard mauritanie johannesburg
éclaté importants galeries phototype
danseurs gésir caserne analogues
principaux légèrement poursuite troupes
suffisent catégorique chœur hambourg
etats-unis inepte forge trois-mâts
intégralement professeurs apparent lors
insurmontable pneumatiques acceptait versements
transmission asticoter opère hâbleur
désavoué terrestres pustule apparu
briller irréfléchi pérès reproduire
évaluée décennie descendent empruntant
perpétuité aveux galles contenues
aussitôt reed via contribuant
cyclamen alpes licencié créance
européenne godillots indivis déprécier
pensant repos pôles propagande
réactionnaire différencier magnifiquement programmées
verdier brillamment court parallèles
mystère vallée matelot gosier
meurtriers poétique quiconque docteurs
songeur  devrions hambourg
monarchie rhume menacées unité
crispation crimes en snob
rustique structure anglophone volige
penseurs sauvetage typographie faux jeton
indéterminée préalable reporter aurais
banalement métaphoriquement accordait juteux
rangées robe de chambre blanchisserie conceptions
limousine philologique figures résolutions
sauterie presbyte fermeté naïveté
nathan injurieusement lisant misérables
étendue médiateurs baumgartner fraction
subitement pull composites percher
villette analytique victuailles marquant
accoucher cailloux commentaire contentant
bercer indirects interrogations jordanie
magnétique emblaver chemin 
camion pure scénariste extraordinaires
varient plaidoirie interrompues baril
industriels rideau connaissant mesuré
patronale labour armements sonder
celui-là aubervilliers contours infrastructures
notice bout braudel estimable
congélateur fusées homologue oppression
conférences choisies perdues navales
forum vierges pape préconiser
remblai monument enseigner antidrogue
balte os gentleman recruteurs
belge vanter jovial ravalement
grasset darder luette souiller
écrasés hypodermique vitesse 
exclu champ de courses différences beaubourg
étendue trembler supposer comprises
pédagogues afghans impie fourrer
traduira grappe salle fleurir
marionnette tueur résignation élargissement
boiteux guatemala fréquent trottoir
dépannage commentait compositeurs abécédaire
angelot ictère échappé bureau
italiens alcoolisme cracovie dédier
cours impressionnante encourager travaux
dominante empoté personnes triple
refusée boucle d'oreille carder figé
soudoyé lueur vive  amnésie
célébrations noir détruire intéressent
indiquent concentrer diminutif spécialement
devenu milieux chars masses
privilégiées caviar auspices associatif
mucoviscidose menée découragement campagnard
franchement investies réalisme exactitude
dialogue court licenciement endurcir dérober
harceler progrès défunte métro
murmurer bousquet fondamentalement raisonné
provoquer foulards tarir initiales
tableau moissonneuse féminin courte

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