Password Strength

motrice insulter sachem rallonger
rênes application cadre verdict
hâler pose harasser funèbre
constructeurs interpellés débiliter théâtrales
tournoi patrouille deviendra instituant
science édificateur carmen théoriciens
lavé sornettes mémorisation conclusion
gifle pénales suppuration résilier
almanach georgi enfers athènes
cardinal antifasciste apprécier salé
restés obtenant chante érosion
best fixé chantage précédée
firmes frugalité évacué basket-ball
enfants poids coupant pari
mûr fondre apocalypse défense
rivier encombré quant voulue
usagers transporteurs paient imaginer
bornes sèche sections fondés
joxe contestataires demi-droite fondatrice
noire perception galure rédigés
convertir apposition notoirement occupation
aversion encroûtement constituées mouton
servent inattention restée déshonorer
anticipées montée mario conformation
paupière réalisation francophones carotte
tonique émouvante extinction ose
intéresse schumann miroir crabe
martinique hésitent modestes quiproquo
posé stadium envahisseur semer
déflorer affectueusement huston chargent
heureux panthéon vlan dominical
genres divergence filigrane prisons
versement conservée chargés parachutistes
fusion sanctionner évoluent mental
steve soixantaine clignoter dominer
remplacement vedettes toyota trentaine
suzuki mesure globaux pence
empire urbain colloques marchés
hollande lettonie oursin récit succinct
sept cents comptoir lancinant négociations
saisissant dénombrer combattu allocations
subordination signalisation hante piano  queue
prise coryza malavisé récépissé
disposent milliardaire compétition stations
mémorable inconsolable régner temple
représenterait vadrouilleur  répondant
macédoine numéral féerie intensément
indélicatesse lointaines utiles marqué
asie riga éducatives propreté
oppositions chaise entuber belle
crible almanach berceau désapprouvant
romancier promulgué assuré imaginez
shamir accumulation narcissisme sauvés
appartenance serbe affirmatif dérivé
mœurs futurs interrompu traîtrise
boxe confrontés mœurs parisiennes
tempérance totalitarisme kurde malsain
accordés baudelaire réédité tombe
collaboré tropical scintiller interurbain
révoltant tiendrait confiner ouvert
biotechnologies civilisations révélait tasse
étendue faillite déclenchée bruno
interpeller maman goncourt revanche
nombriliste empruntant comparatif ces
enseigne récif heurts vermeil
éleveur nerfs solides vivants magnifique
déclarait hélicoptère admirable ténor
effectue aplomb céder logement
puisse fainéanter dégoter poisson
aspirant inscrites lapin commissure
sérieusement inférieur autorisée race
entièrement célestine west proche de
poursuivra famille protectionniste avide
cotonnade expectorer réussie étrange
poperen protesté tend cherchent
provisoirement prier géographiquement branche
décline dromadaire angoissant blocs
dépendent tutu plastique momentané
parviennent jus découper fallu
barils patère décoller récentes
augmentations physique élémentaires présents
thomas chambre électorat délits
exhiber ose ouvrent schmidt
patronage livresque stadium clermont
allée élu déclaré examinée
alligator panorama cubes jauge
nageoire perle risques modernité
récuser démasquer privatisées guerrier
pastiche définit casernement madré
adminicule répand dérision baker
affourager chaillot bourgeoise notons
facilement treizième lieutenant préféré
concordance poisson obligation gestes
oppose ardeur chaudière troisième
situant conçoit teinture iode commentaire
multitude bishop nappes elisabeth
énormes fâcheux somptueusement susceptibles
métaphorique facteur prolongation méconnaissance
penalty anne enflé effondrement
suppuration occidentales sage-femme recyclage

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