Password Strength

resnais imminente audiovisuelles muscles
emblaver acteurs secrète fiasco
regrettent bénévoles vertébré portion
mariages dévot agréable oursin
immobile attendons automate paperasse
reprenant appellent ciné administrateur
oubliant davis peuplée factures
concentration  permettait pénètre
racontait toxicomane vêtements latéral
interdisent poursuivent aveuglant classe
urbanisme introductif ébranler précepte
insultante actuellement œillère déontologie
agressive rivaux fornicateur vétérinaire
dégourdi semi fanfaronne récuse
heureux téléphoner alogique maintient
métamorphoses écrivant chaumière vaillance
écrivant formation publics tringle
problèmes voyelle chargeurs marxiste
postiers couvre-chef mesurer stupeur
transmises boulevards colombie boutanche
écrivain blancs anarchie indispensables
armés unit migrations ironisé
banalement particule parcours usure
quelques psychisme irréalisable usine
dépêchés lanière artificielle ignorant
dégarni verne résille défaut
pattes retentir baiser athlétisme
refusait troublé fiancer étatique
existait inventeur équitation aigreurs
pic recevoir huître tombeau
boute-en-train rétablissement fascination meubles
slogans autorisées repose présentés
étonnante rayons sermon philharmonique
juppé incommodité présentations bière
présupposer bestiaux coupable abrégé
légume grenade armées fédération
parce myriam prochaines medellin
imposer mao bavarder bleu
fortunes borner virent radine
illégal enserrer gestionnaires voiles
pyramides dénichant enrôler menait
présenter querelle outrepasser proue
mouvements chocolat pétulant déterminante
paniquer poignet lorient ferroviaire
agoniser bâle secondaires secteurs
collaboré sous irrésolu arabisant
acrobatique tonne vol bourgeon
énerver nonne prudents trompeur
composantes bassiner participaient décelant
potentielle ambulance préparation gloser
nombril impénitent essayé libanaises
déconcerté hôtellerie maximal delors
tamiser soubassement intègre rendez
approuvent seigle véritables identique
chantre muflerie diplomates évoquent
ravir camaraderie affirmer airains
décontenancer égal doutent parquet
bocal particulières cachée déplacer
ratés toubib aubervilliers menée
sélection anche désobéissance êtes
camps connaissais localité arche
supérieures reconduction loi conquête
bloqué boursiers nourrir paléographie
superbement fédérations régiments usuel
douces vierge marie ignoble soffite
naturelle agnosticisme inspecteur mi-temps
rapatriement industries mécontentement figurait
confédération helvétique rétrécissement battre bosse
envieux félonne réglementaires coûtera
crocheteur blutoir galurin empaler
vitro corde  archéologues
ingénieurs déceler congénère maille
fendiller impertinent rapporter pendre
mains mondiales dû désarmé
docteur librement rondes réconfortant
félonie avancer endurant formateurs
possédait reproché consultant gémissements
intransigeant mioche autonome crisser
vitre marquant souffrait rancœurs
supercherie écluse confessions dispersés
défiant charpenter inflationniste négatif
pompiers étui insuffisances permettrait
circulaire tentateur empressé paléographie
couvre alpha chéri provisions
consulat auroux constant humbles
débrayage causer effervescence voyager
déterminée débauche aille formulée
clin télévision pop lionne
cygne invitée responsables amphi
fondement coléreux dirais désinvolte
plaignante kiosque chef boutiques
persécuter basé revoir soldée
guère anachronisme monnaies débourser
mollet électrique inédite existé
salaire impopulaire bourrasque éternité
amener fourchette tatillon étatique
panégyrique acoustique décennies mains
claque armoire censurer abrité
raffinement atterrer nerfs acier féerique
tromperie gazera paralysie pope

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