Password Strength

honnêteté feuilles élites éventaire
mie féminin orsay renégate
soulever convoitises guêpe déballe!
sentinelle apport endormi écarquiller
au-dessus proférer industriel demi-tour
visiteur au-dessous brigand rubicond
copieur ère cosmos transférés
élévation finlandais malingre infléchir
énorme anis inconditionnel nina
multiples ivan bath bander
confiants bobonne banlieues uni
fins dîner martinez rhinocéros
reporté né fins maillot de corps
conventionnels influencé régurgiter pâtre
scène de théâtre aix formel auquel
découle réprouver difficulté avisé
karpov farce faciliter anatoli
organismes battu drôlerie regarde
cultivateur renonce minet baptisé
déposées diversification croient aimanté
permission traditionnel mali brigue
luisant boyau venez périlleux
néphrite patriotique forcerie accession
sacrifices sophistiqués transporteur portées
collectif permanents rayonnement effronté
ceinture principes pomper épaté
étudiants attaqué soyons négociateur
encensement diffuse crucial plate
désiré veinard actionner dénommer
colorier expectorer coin souscripteur
atomique informer essieu concevoir
donc pourrions vexer prince
joël adoucir non-sismique rentrés
surprend supportent déréglementation pleines
serein lorgner sombres grands
aigreur ford quittait argonaute
franchissant appendice stimulant conçu
donjon électeurs dromadaire rabaisser
antérieures courses pèse angolaise
révélé épicier repoussée teindre
polonaises verte loire chartres
dépeindre indiscrétion constantes effiler
agnostique terminer tsariste résistance
flegmatique ignorant impliqué prostituée
investigateur salariales séduisant claude
sages potin mandat australienne
paternelle irakiens définissent limitées
entrera ossature frappées déstabiliser
ameublissement harpe déchaînement scélérat
hommes micros mégère cierge
bavarde trésors abrasion 
prétentieux extorqueuse courtes léniniste
fondés bileux clochette fève
rite formules exhalaison procureur
foisonnement envoyées investiguer lignées
faisant illustrent hussein agir en maître
survenue barres ordres informations
situations rentabiliser pétale antan
semblables dépassée requises cour
bourassa lisse stations one
marquera algèbre entrevoir bateaux
reconquérir tests automate absence
économe insurmontable groseille arrimer
infichu conséquences alchimique prochaines
œuvres finasserie sapin de noël geoffroy
marginal nuages réprouver quarante
autorités mélodie travaillé merrain
complique stimulant unesco boucle d'oreille
pouponnière estaminet affecter supercherie
as délits suspicion inhabileté
grande lille navigants chauffe-eau
promettait prudents instructeur besogne
dialectologue réclamer pédagogie circuit
allégé coup de griffe troubles peuples
insuffisante anormal infiniment bec
dirige créatrice permettant minitel
faciles préméditation fiançailles syndiqués
revendiquer condition contribuant barreau
ouvrière cadre pedro doublé
lycées contester échalas envoyées
entrepreneur droit synthèse fatiguée
par-dessus incrimination congeler automation
embrasure tranche rédigée maquereau
êtes propreté contagieux démonstratif
informées souhaitent oasis pierre
racontars fabius esprits automates
sautiller botanique joseph revêt
volga californie remontée inconsidérément
suspecte points banlieues incorruptible
propagande ortie ornière colosse
financent bénévole rosette fidel
dent révèlent mer rougir
perrot procureur escalade bicarbonate de sodium
tohu-bohu emblème amputer rebrousser
épicer dix-neuf bats exclusivement
flexible oms coréen éditorialiste
emmerder insolence retrouveront droit
technologies fatale assonance aumône
effectuées postérité riposte portée
nièce languedoc réverbération fraude

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