Password Strength

voyelle affinités exceptionnelles regretter
choses propositions hésitation futile
cultures restées mesures impression
exploitants manquaient impeccable cuvette
patricia assassiné fracasser macaroni
dramatiques maintenue clandestine houphouët
mélancolique féminins parut souffrance
manie baragouin sérénité fût
placard successivement déploiement salière
épousseter coran alarmer baver
héritier éloignées feuilleton exécrable
fortunés vivra billet de banque conter
traduits adoptant cliniques luc
placent roland juifs décoration
réaffirmé recouvert théoriciens interministérielle
saoul avoué shimon grises
braquer audit urbaniser complication
dès bresse rapportent enclins
justifiées torréfacteur énergétiques corporation
chauve opportun fac urine
comiques humanitaire renoncé pilotage
convoquer exigé sac hache
ball fréquences suc coquille
commencera monologue occidentaux dame
soulèvement conter irrecevable insistent
encyclopédie productive médical saoudien
inviter protéger narine télécopie
tronc arbre innovation association retourne
blond périodiques gratification austral
nerfs claires nourrit raréfié
accessoire betterave charpenter atmosphère
obéissant après anse bombardier
préconiser attirant aboiement raffinés
trio maladresse complaisant classement
rhapsode seigle discrétion compétitifs
uniques trier jazz squame
potasser asphaltage oubli mondial
révèlent soupire arsenal aujourd'hui
livreur trancher moisi britannique
avaient tranquilliser rédigée lasser
sonore tracasser brut étages
faïence quand allemagne empêchement
broadway définitivement équivalent prononcées
graduation vieillissement matinal restauration
union soviétique associés italien pierrot
appartient manifestement sacrifices interprétation
sensibilisation frimer visuel danemark
associe trentième comprimé écologiques
but exigeants maisonnée dames
historique plagier remuer naplouse
paulhan dirigeants idéologiques invités
valise boyau certains disputent
résume dédire voulut monde
margotins convertir collaboration leroy
chaîne renforcement consultés charité
enfants souhaiterait prototype volontiers
wagon-lit rossi couvrir stein
neural animé montreuil artisanale
instauration grade longueur tour
opportunément élitiste remplissent alchimique
calédonienne jacinthe adepte participants
médiatiques trémie leaders attire
grincer doté rampe autorisations
vietnamiennes basse secrètes rabaisser
gouvernants tari prise epinay
biscotte frire vérificateur étions
surface lys téléviseurs infaillible
réalisable réconciliation onze météorite
appréhension mois broder incisive
enregistrant initiative sorte embêter
indépendants mexicains tourner philosophique
épiscopat date de naissance tonner emportés
pudibonderie commissaire-priseur énergétiques polémiquer
impeccable thème musical blême arche
surnommé persiflage marchepied financier
frais scepticisme quels cible
moisi blessées monstres manchester
car flambée aurions rembourser
pratiqués constantin rivier diversifier
profonde agresseur manipuler irresponsabilité
préjudice toxicomanie pêcheurs poubelles
tendu dérober permis lectures
correspondant produira demeurant sydney
tragiques noah henri excédents
avoue daimler démodés françaises
technocratie promulgué galaxie admis
bouteiller venons progressé gênant
pouce demanda étancher retranché
entend inattentif vigoureuse lainé
escorter assen vivait néphropathie
courses coloration violence révélatrice
abréviations élaborer tourné nonante
condamnable assaisonnement explosive vietnamien
slip auditions intrigue mandataire
métamorphoses persister épicé cloche
utilisateur godiche correspond lacunaire
particulièrement impur épines menacent
généraux molotov intégralité achat
pateliner millions représentatifs lancinante
clef netteté qualifiées lactifère

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