Password Strength

châtaignier hébreu eskimo assemblé
cravate valentine originel appelés
méditerranéen donetsk cents rapatriés
raphaël écœurant anderson concerner
payant appliquant complexes cardite
des ruine extrait perçoit
anesthésiologie épauler bouc pleines
rothschild nourrissant michel laissez
investissement notre inégal déposé
permettront tentacule pénétrer paraît
clou rênes moufle constitutionnel
aigu maximum protestantes répercussion
rappellent geoffroy hughes topographique
recettes paquets salzbourg marx
apprentissage téléviseurs déroulées cieux
synergie susciter rêvé envahie
conférer gymnastique photographies trois mâts
persiflage patent nurse transparence
sans approvisionnement park milice
déchiffrer distraire continuer honnêteté
ulcère soûlerie faveurs payé
sentimentale libyens nouveauté particuliers
bêtes potiron faiblesses mortelle
souterraine paternel attractif incinérer
mancelle immobilier équivaut diffamer
carole angoisses passait non-engagé
élémentaire passerelle hughes autrui
réactionnaire molotov convoquée virgin
tiare désignation défoncer bagarrer
concepts cherché désagréger parvient
représailles acrobatie régnant diffuseurs
ensemble uniformes chevalier faction
 dérégler habitat sommet
nippon défaut souffrait kafkaïenne
bill écrasés fabricant chantent
espacer compté jurisconsulte punir
plante bien-aimé conditions métallurgie
courts numéroter libérations merci
interrogations portefeuilles revers éveiller
pédagogie drogman réintégrer circonférence
ponctuel diffuser termine festoyer
aigrefin priés sanglier rencontrait
habituel emprunt perfectif fatum
couvre robot imbattable danse
rébarbatif panaméen perle leasing
menés adore purgatif inspecteur
cendre short audiovisuelles quête
convocation investissements atteintes relents
pérou soulagé atrophie confédération helvétique
appendice amortissement heurts cambodgiens
exilé handicapés turbulences piètre
cruauté langouste actuelle lourdaud
humaine humecter dénier fréteur
catholiques écho clairs aussi
téhéran linéaire réalisés nombre
élévateur premièrement marquent indéchiffrable
ballons hérétique tendances déficits
désapprobateur maître tournesol rédigée
départementales craint uriner pagaille
cacaotier prédestiné cap blatte
finance voyou masques dépose
toqué ventes hargneux trébucher
tolbiac regret sensibiliser mêlent
jonc brecht goujaterie charpentier
chémery tapuscrit incurie retrait
papillons influences dessinateur justifient
impliquant sept cents rendues existantes
typhon exactions propriétaires invitant
mouvementé prévoyant faveur autorisées
mémoriser pudique comédie composés
agissant poétique cachet servant
voulez compositeurs dépit de obsèques
matinal vaurien puissances amusement
résulte allé légalisation au courant
annuellement matin finasserie pénétration
buffet guyane conditionnement parvenaient
confier charcuterie coton geste
légumes pesanteur cinquante gaucher
godiche arbre de noël couverte écrasés
gémissement citoyen essaie petite-fille
prévoir récolte commerçant forcément
support proposera préhistoire baptisme
capitales attitude potentiellement unit
parution doser crépiter adjoindre
ajax engagement présidentielles cribler
oblige définitives unions hernu
val buisson fayard promener
soldat contemporaine particulier sirènes
traîtrise inepte reportages chapelle
éditer authentique incolore permette
procès approprié expédier antennes
 frappé psychose finlandais
informer dorsal chipot sort
maldonne chant sophie librairies
pelure immature raccourcir cocktail
caraïbes câline chaînes dangereusement
séparées avantageux traités concrétion
pics reniement équivalents sera
métaphysique professionnalisme boites supposés
torgnole nombril créent grondement

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