Password Strength

secrets opposent ultimatum stick
impeccable astrologie rêvasserie télévisés
barbu négligence croisent erreurs
affirmer bouchers bouger nazisme
intestin sensiblement installées firme
résidente tricoter écume poursuivait
offerts bluffeuse promulguer profit
lactifère pèlerins exploitée juron
insu salaire ivrogne fendiller
frissonner luxation lisbonne engourdir
frères touffu ouest melon
peureuse trouverait réserve absolu
dominant oreillons tartuffe 
affectés améliorer réponses abondamment
noces inférieures concilier déraison
bénévole caractères monticule azur
encercler réunification hypodermique pathé
transporté égaliser been vierge
renoncement soupçonner lâche kundera
sociétés tiennent uni essayer
répartition entamée mouvement égyptiens
nos jours pessimistes écrite collecte
reçu islamisé elf frapper
absolue titiller appartement heurtent
oms observateur située distinguer de
tortionnaire nagy bûcherons béatrice
malfaçon iris remplace gironde
banalement transformation tromper subtile
signifié butin tambours leurrer
parrain fléau présidentielle superficiel
boucle d'oreille regardent slip étatique
dérapage égal fontenay sentier
gestapo pirandello bassine effectue
conclus pertes feuillage signé
banditisme épine cloison macintosh
appuis entraîne actionnaires nervure
surmonter faillite aliéné lourds
manchester littoral ambitionner satisfaite
bienséant moindres repartir chacun
redouter rond droites auvent
solennelle pratiques florins oubliant
congratuler larynx pochoir fantômes
moutard remonte formulée masses
contente colossal milles portent
jugées inconnaissance assouplissement croquette
müller sanglots intime certitudes
ostensiblement forteresse calorie demandant
remonter élément de preuve ban superbe
prestataires cinématographique chiron cracher
longuet perestroïka initialement sympathique
baccara danielle conforme déficitaires
malades bruine raréfié recruter
privilégiés giscard bailleurs septennat
classifications informées appartenaient déclin
débouchés gisements étroits strictement
pékin écœurant manfred aïe
bave enfers céramique annonacée
accordéoniste rémunérées normal bâtisseur
bannière moucharder détendre dépasse
voyant interjection crique éditorialiste
autobiographique rassurer privilégiée agriculteurs
supprimés pompidou pourrait accent
donateurs indésirable blanchisserie turc
altérer calfeutrer affirmait bains
affronte rustre dérogations comportant
choisis lester motivations effet
veau partielles profit de assoupi
sexuelle flou utile récréer
convaincant approvisionnement rétablir statue
plages fructiculture reproche images
croquis installé donner assume
inapproprié phares diabète heurter
également impensable concierge projectile
chapitres villeurbanne reniement balader
menace oreillons observant acrobatique
soulagé vénération divin french
irrépressible suc jaurès tchadiens
abasourdir snob explorateur motivation
suspensions laissait cracovie fonda
houle aménagements andouille proposent
évoquer canotier bâtiments cultivé
nantes melon ouest purger
favorisés phototypie dépens constitués
stérile épuisés caler cherchent
comprenait occupation extorsion aisance
réalisations barrages entretient inaccoutumé
réveillon noirs trésorerie ailes
dame respectés profit de adaptés
prévenant assigné apporter forcée
redoute raccourcir insomnie téléfilm
détenait brésiliens formuler bouclier
désastreux poussés exécration corée
moindres servez-vous subsister opaque
inculper suédois alinéa furent
gorbatchev sportivement dû apports
rencontres adoré âme pétoche
coiffe suicidaire indigne équipé
peser sites statuts affermir
fiables ligoter excuser remarqué
désire inaccessible combattu socio-économique

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