Password Strength

élément de preuve lésion premiers riflard
télécopie kaboul martyrs meilleure
non-engagé critiqué convention soutenir
munitions paquet contrepoids approvisionner
chaînon ligaturer souvenirs marges
connotation repoussoir traductrice évasion
ricaner quoique câlin marchepied
badge représentation détestable fiscales
boucle tôle savaient stabilité
désarmer adoptées métallurgie rénové
vertige qualifiant particulières architecte
malgré tout bourg primaire mobilisent
quasiment accroissement prune identifiés
 chers départir cracher
sensibilités désespérément chairs satiriste
salon de thé dépeuplé alogique dîners
clause maquis circonférence glaive
coupés édifice démocratie nouméa
amas immensité pavillons archevêque
renforts immeubles bancaire paraisse
oser péjorative démêlés finalement
tsigane susciter asse tâches
familial obligataire rallye mans
chancellerie montent informelle recrutements
escalade boussole terriblement azoteux
accommodation signaux pratiquées anciennes
prosélytisme souviennent officiellement acheminer
vagues ruée enregistrés extincteur
vénération apportés périphérique internationaux
affûtage crucifix vaillance tabac
auvent choisies déménagement meringue
reflètent fierté appui larynx
temps indiscutable prévisions opulence
vestes accusé grégory technologies
supprimée subsister ébranler cause
dénommer admet phones impossibles
blindés loire charter câbles
protecteur lecteur micro-ordinateur foisonnement
émetteur aide-soignant pronostic stabilisation
allemands thème rustique länder
sait pyjama bave assurer
minotier dante moyens flotte
connaissent ressemble clause apathie
divulguer ajax approuvé prestigieuse
attrister excessive démocratiques conceptions
been énonciation couleur musée
non-intervention récompense kharg statue
bénéficiant chienne resquille autographe
consacré licite rossignol simone
stupidité belle élevage logiciel
béer convaincue pointu peiné
citrouille bourbeux duplicata gifle
retenu ennuyer inflationnistes nouvelle
négligeable vôtre dépêché versions
récuse balourd dure âpre
botanique fus utilisation de bas-fonds
nettoyer voulaient automate tricot
allez asséner éviter déclarait
pétrole brut besogner arcades rue
boîte asocial déposées baguette
débrayages indemnité géorgien pence
menottes multiplie ravitailler millénaire
coup de pied discutent appréciation océan
cuveau amours signatures métropole
voyageurs postiers retrouve espérances
robbins renégat cadre gravité
balbutier gérer opérationnelles récré
contestataire promet perceptible voltage
déterminés écriteau entrepôts recense
fervent marchepied travaillent franck
cul sec escale débute raboteux
description exaltation herbe majeurs
rénovateur pichet déployer vénération
maints sécher sources police
stadium communautés martyriser droites
ballade palestinien au-dehors soussigné
demeurée automobilisme démettre consolation
arrivent totalement stalinien contenue
coup d'etat spécieux grecques collègue
supprimés fleurissent grammes adaptation
dame de pique demeurer esthétique insatisfait
ressortir intérêts considérablement prééminence
monopoles revalorisation éprouvent balbutier
légitimes langouste ciné mitigé
décorer dessous-de-table assurera 
chuter accueillir dimitri jane
complimenter léser exprimant glacial
palestinienne découper aisne défier
amis sophistiquée balai collant
deçà blindés gadget gèrent
suspicion généralement calamité tiennes
pébroc suavité sociologie révérer
premiers soudoyer chartreuse allouer
note gars dotée lorenzo
 négocier végétarien carmel
cornu frelater violenter diffusées
plant diadème irait tchèques
bakou poperen spécifiques révolter
culturelle présumé maladroit minoterie
prenait bouscule ressembler fonctionnement

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