Password Strength

assurera espagnol réuni laïc
palis convaincue détournés agressif
satire noms philibert industrie
alimentaire soulagement gouvernail tournoi
couperet ligne diffusée fêté
séparés cacheté fabricants nichons
kreuzer slovènes poli mérité
sirènes culier artistique concupiscence
bureau de poste filles commonwealth récépissé
brigadier data magnanimité kahn
missile commissions inépuisable soient
scélérat laissant punissable carrefours
omission liste périlleux salutation
lacs fiacre sommes aujourd'hui
barque embarcadère vacances avisé
flirter équilibré planches rejet
légal fédéraux patiemment succéder
stasi transforme semblables castel
sobriété chemise délinquante entendue
habré mésaventure réclame centimes
sonnerie cabinets qualifications jalouser
analyste index assureurs salisson
série opportunément casque sitôt
anonymement imposent joindre électoral
inconsidérément mouche bon grain adversaire
lien rogatoire pacifistes sucré
bande attribue carences compréhension
modifier impressionnant dumas illisible
obéir traiter absente lucien
cynégétique scinder arménien survie
fraîchement liège vindicte café restaurant
inscrit nuages bogota insistant
fonctionnaires prometteurs surprenant banian
approvisionner orphelinat interprétée incertaines
novice essor interprété gandhi
envoûter kiosque chef-d'œuvre préparer
strict pan fagne volontariste
incertaines crapule marmite correspondre
vernes touché bourrer symposium
allitération émouvant investissements vocable
exchange collet laxisme démenti
explosé rhumatisme mont pillage
ambitieux malgré tout cannes gradin
piller apprivoisement parfait escroquerie
dentier vindicte contours trouver
exigeants provision cicatrice stade
adressée dubitatif désoler sam
ratiociner dépendance rapatriement rétrécir
humoristique cheveux racontar 
seigneur destiné atonie souviens
estrade frime prescriptions anachronique
complexe beethoven poussée métrologie
ravis préparatoire tunisie intellectuels
valéry adn recevant calcaire
canaux logeur sajous peigne
déférent chapon inflationniste travaillait
révélateur littéral balise musicaux
gousse célébrer hauts prote
mortuaire tambour racontant mobilières
courantes ammoniac princesse irréversible
renvoient débattre margotins clope
spécial superbe cru antarctique
têtes inlassable crucial estonie
hululer égard midi ballon
réaffirmé caricature haut-de-forme devait
nocturnes boudin correct majoritaires
protestants apprivoiser sociologue obligatoires
penché salons matelot anonyme
défendue roméo provisionner poursuit
remplir dispose blaguer mille
flaque dialectalisme crochet australienne
rachète chômeurs potassium abusive
faites non-sismique rétrospective réclamée
beaubourg allocution résider démolition
gifle religieuses lacustre chaleureux
fanfaronner chefs numéral construites
mésintelligence apprécier lara cafetière
contraints colonialisme sociologie aboyer
année pouvons blanc d'œuf gouvernemental
pleure lâcher genévrier insolence
arrogance témoignent gastronomie matra
ensoleillé fameuses biscuit anciennement
fautif illustrant nazis débouchés
agence sûres timidement émouvante
écrire bourgeois saugrenu réalisés
rugueux terme inversement larges
indemnitaire maxwell pots effaroucher
pensaient amoral détermine pompe
grippe-sou clignoter modifiés sagace
autoritaires ascension syndrome inégalité
rocheux filles grimper asbeste
spectaculairement collines articuler duc
particules éducatives dames tchèques
produisant censé disquettes prévue
exempt gèrent virulent intellectuels
 effiler manuelle scène de théâtre
tardif imposés poireauter mélodie
humain camisole largesse gérer
photographique kadar constater 
souscripteur projet radiation records

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