Password Strength

inaugure marées rentrer obligeant
étroites majoré gaëlle adjonction
dénoncée smith musicien papule
émigrer présidé machin garden
quémander visages certitudes aligner
ailes atonie parvenues bénéficie
city montfermeil tourmente béret
mandela disais manquer barrière
compatir brandir ressemblance iranienne
légitimement derrière birman rer
merguez importer recréer gérant
intervention panaméenne régaler demeure
inconnu renouveler abstraction présentateur
billes controverse crémation exhumer
régionalisme gêneur palier flot
amenés vulgarisé assureur stature
mérites insatisfaction multicolores désorganisation
lacet réduit horaire ascendant
étendues contractée festivités sortilège
belgrade enregistrés verbaux indice
lueur informée enquêtes défavorablement
plongé dans précieux anticlinal séparatistes
intelligence mandats gymnastique brider
ahmed empires coffre confier
puisé mieux honecker canotier
mocheté préfixe becqueter clarification
grandi couvrir endurance perspicacité
atavique singe noté hindoue
projette tain sapes étrangers
godillot constaté indiquait dommageable
agglomérat eau de mer pop malchance
nerf accessible suinter sacré
chou-fleur irrégulier voûte opportun
vaillance nomme idéale vraisemblable
dissolution décentralisée endosser perturbation
professionnelles suffisamment exaspéré essai
impopulaire allé transformé dangereuses
soixante claquer teindre reviendrait
purin anne pourvoir coups
magasins foudre information bâclé
maritime colérique herbivore mitre
auspices communal docilité apprêter
individuelles barde envi illégitime
barrot grimace abattus obtenue
croisé infamie disputé ménager
calmes serrée licite prises
analogues descendu  surcoût
sidérurgie gestionnaires liant effectuées
finaud ministérielle raclée sèches
voile surprend langage profane
aviez expulsion chevelure malicieux
reconduite décrète chausser escalade
physionomie cohabiter conscient bandage
lactique imprévoyant roupiller comprendra
enfance marié acheté élaborés
charrier liasse dame anomalies
propagé cerveaux monique innocence
ânerie proposer accalmie suppressions
sommaires licite crûment fuient
exploités pères colonel résignation
inéluctable nerfs acier interprétatif industrialisation
intéressante délibérément enduire ouvriers
pistolet appuyée réuni suivra
privilégier finie démodé inoxydable
résistants habitués suffisance rêvé
intime indéterminé analogie intense
connues attaque meubles athée
imagé cheminer hydrogène ultérieure
coloration va dégénérer vietnamienne
infâme muqueuse bases barométrique
attester rétrospective motif bnp
concurrentiel sénatorial impliquant anchois
aimant comprennent courtage extinction
poches cécité persécuter infamie
vietnamienne jouer moindres minéralogie
organiser réprimer mer payant
coureurs allumettes simon vivantes
roitelet bulletins abondante dissident
bahreïn alpin civilisation turque
reportée désastreux cafetière cannabis
occupant encre franc-maçonnerie humoriste
boum remanié olive conservateurs
shampooing faudrait crisper saxonne
tchad contribution œillère lilas
accidents chairs allégoriquement blocages
caractère canot attribue carrés
émission patienter amuser avenir
pétroliers récréer aéromodélisme tonneau
municipale manifestation repenser raboter
polémiques musicien cruelle militantisme
verre nec provincial agit
annoncé expressément excellentes adapter
cordes épuisés plate-forme réguliers
rouages bonasse psychodrame apollon
toilettes soupape bruce angliciste
aseptique antéchrist odile lointaines
avant-gardiste justesse mayas colombiens
poèmes personnel baptême malingre
produira restrictions verne salarié
cendres distributeur crâner styles

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