Password Strength

carnage rationnement utopique évident
lustres milles aéronautique autoroute
prêchi-prêcha linder pion déroulement
autodafé tête nues perpétrer
roquettes bombardements unités invoque
dingue venimeux prêté donneur
globalité son celle-ci participent
nager bretagne lustres tisserande
introduit boites permanents inspecter
ascenseur éclate surnom expressément
policières avarier allocation freezer
élimer imperfectif éleveurs concurrent
revendications bonne parvenu soufflet
confrontée envoyée bio existait
fourrier plat première orléans
dupliquer promesse ouvrage démette
faux jeton églises formations pouvez
optimisme évoquées exigeant digue
intolérance jetée oratrice ramasser
felipe javel authentique ballets
onomatopéique hivernage malicieux maillechort
bangladesh veille conférencier garçons
contrebande mutuelle iran légitime
inférieur manufacture successif lucidité
bénir portant citations université
compromis chaises tolérer thème
accomplie autrichienne expose queue-de-morue
balcon arcane voltage mexicains
arrive émouvant transfèrement généralistes
blanche arrestation précautionneux contracter
pastoureau index ras-le-bol barbe
for incapacité creil fissure
hanche vocabulaire hausser retenue
centriste militants appelait confort
apportent leader internationale actualisation
dérogations partition héraut îles
egypte collaborateurs proximité impérieux
maniéré ébullition maintes enflure
capable de chouchou portugaise carreler
sien due amants lointains
essai rolland patiemment volumineux
crispation saccharine examiner opportun
gourmandise venter choléra faisaient
raisonnement tutu amende otages
poudres ralliement deçà déformé
trouve jus échangé fabriquent
préventif géantes circulent vagabond
abbesse harceler sculptures semences
interdits carmélites léger intrigue
appartient fumet désignée approfondies
juteux réduites ère musulmane marteler
articuler engrenage désabusé adventiste
sept cents fromages lèvres productif
diurne bilatérales prieur pourrions
mouillé achetées mardi erreur
statu promesses accumulation british
finie consultants kilomètre listes
bercelonnette acceptées son bagagiste
bénédiction démasquer estimer désoler
depuis cou suture entraîne
labyrinthe exploit divergences malveillance
poulenc aube réclamée institutionnel
ajuster dessins intersection fidel
antérieur comparaison dosage goutter
adressé parrain outrepasser arithmétique
recourir quasi commissionnaire tirés
fatigué inauguration conscients honorablement
inflationniste abattus frappées efficaces
remonte antilope désire calmes
dérobée abattage aisselle servis
suppressions redressement grotte habitué
agglomération aromatiser toits jubilation
décrier nourrit posteriori équipage
aristocratiquement publiera obstinément draguignan
anode épointé amoncellement tank
passions cousin cols léguer
critiques exiler lingual présence
élevées rejette compositeurs bourg
obscurité doivent ain douces
effectués initiatives estival cédant
pompe institut bakchich abusive
tchadien rancœur répondit vaillamment
salle employée prévenus théoriciens
peindre quatre prémédité méthodes
confirmation transformés incompatibilité allégorique
daimler fleurir composant insultant
guinée habiller arrangement menées
mayas vers luisant lésiner hure
tauromachie amenés masson venise
denis nonciature variable meunier
impensable compenser dorment sillon
reptile carpates déniaiser entorse
ruisseau préoccupé passeront ère musulmane
manfred fouad rouleau cadavre
tes active scrupuleux alpage
conserver amours chaudronnerie contenance
sanctuaire kadar identifié déploré
devenir dépassé énergie inoxydable
raciste cynique bruine jusque
dernier lieu planification contenir conducteur

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