Password Strength

sornettes rénover embouchure expatrié
décidant doubler balayé ingénieurs
arbitrage perrin picoter inégal
annuelle charges amélioration pleurs
agissement crs matinal expert
pro vérifier redoutant picoter
repenser azote micmac luttes
peintures cheminot crient rationnement
déploré alchimique tranquille prédisposition
truand inhumanité républicaine musarder
avive mêmes détruit évocation
annihiler étendard nourriture épinard
meeting démoraliser violon désignés
alourdir élus gouffre adhérent
aimer affranchir pyongyang trompé
privilégier surenchères fête interrogation
onctueux irréalisable transfusion soupire
exact imaginé redéfinition guy
adjoints aiguisage paraissent courbe
réservations azoteux abondante grandes
inédits menacer bougé fossiliser
polychrome barricade froid moralement
pontoise obscénité indigènes cuivrique
un concurrencer corbeau crèche
science pluraliste carré kyste
rapports obséder gdansk légitimité
pénible moreau bronx tourmenter
nécessaire récolte deale bouteiller
donnant procède témoignage alambiqué
changent spécification durables recherchent
évidemment débutant usagers obstacle
échangés musicales irascible volonté
diversifiées marshall chaudronnerie confirmer
exchange edmond inconsolable fonctionnaire
sentier passerait achetée durées
hésite mélanger sa rescaper
temporaire merde féerie rapprocher
embouteillage pli aérienne adverse
apostolique réitéré dupont chevelure
associées milliard résolue collaborateur
réacteurs support naïveté indiquant
permettre téléfilm veinard course de haies
besson transportant balnéothérapie atteler
assuré constitués réveille quarantième
bastaing accroître libérés urgents
jouer songé revirement agnosticisme
psychisme algorithme affecté synonyme
glue pli habiller eaux
masse renfrogné musulmans 
larousse bermudes billy conseillé
réparations méfiance elles assaut
tourner haut-de-forme miennes commanditaire
recouvrir entraver idée routiers
forcené vitriolage réitération carpates
méconnaissance parisien pelouse charme
diane concentrer glosé ralentie
délirant tulipe couteaux aligner
quilles contaminer sic insulter
éminent mettrait renfoncement milliard
souvent seul plongeur performance
bordeaux dires héroïne étamage
goulot idolâtrer initiatives stick
notable comparaître grec éparpiller
filtre collectionneur hersant effectuées
dispersés musiciens domanial tentés
rénover calorie mongolie fusée
bigarrer meneur âpre stupéfiants
tardivement raide prévues crédits
serai prophète industries park
désespérer atavisme junte bide
fondée constater abolitionniste lustiger
allumettes université abonnés abonnement
complète décevant sourd mirage
entreposer cataplasme volet terres
supprimer stern champagne inévitables
scénariste humble tropicale influence
neuf membres estimations payerne trochet
appareils engueuler guy richet
fidel nul potasser large
attrayant relance filmé coûte
out flair renommée moléculaire
afrique warning rencontres variété
tremblement brésilienne parc flemmardise
pharmacologie sauve ratés hitler
savonnage héraclite rangement bouleverser
tolérant imitation entrepreneurs attend
fixées économe crédible rare
prioritaires suprématie soulèvement regroupe
équivalente télé demeurait philologique
aigre luxuriant divertissement vatican
carré ministériel inné consommatrice
chou-fleur sables broyer modernes
ombre longtemps fondateur liquides
candeur aggravation enlever préférée
natif journées bouteilles tête
malsain réaffirmé sirène clochette
sereinement enrouler lueur brun
alfred démodé qualitative ruée
sang-froid assurait devoirs programmer
soutirer vise dialectes fervent

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