Password Strength

vexant balladur gorgée encouragé
acclimatement soldée enfant voyaient
fourni châtier régurgiter pantoufle
informatisé empreinte formalisme véritable
contraires farouchement attestation mousseux
azoté jeu docker logiques
pointu chypre lumineux fondations
alexandra prédit modestes christiane
taper autocuiseur dérange hétérogénéité
enfreindre mistral coiffeuse parente
barsac suggère télévision rénovation
pacino acquitter mêlée soldes
essentielle  anticipée paradoxalement
minoritaire marina pitoyable annie
carioca singulièrement raréfié embarqué
carl cars subordonnés manufacturé
confirmés optimisme indre corrélé
repères anesthésiologie pessimistes traversant
macaroni complète creux prises
implantées atavisme odeur écartés
petites historiens havresac laborieusement
poncif facilitée projecteurs jauger
complaisant divulgation caboche concerné
démentiel infrastructure london amoncellement
réintégrer conformité cachet nationalisé
donna départementales savamment déblocage
continuera dupe perçue rejoignent
surendettement munis typique légère
minuscule repères scrupuleux montants
désirant néfaste financier lèvre
crime sélectionnées saisi chercheur
grange campagnarde déterminée surprise
formuler adroit qui spécifique
hôtelier préoccupante scarabée amorcé
roubles boxeur reconquérir auquel
anglaises combinaison appréciation bonbon
union non-valable rallonge groseille
pacage prononce brai catégorique
mairie chenille deauville linéament
maîtres moue boat people irréductible
couvre-feu installés démontré raté
guerre vraie préoccupante enquête
microgrenu assiduité laver précieuse
asiatique assurer principauté explosé
lucide boursières postulat virginie
rentrée immeubles gésir avouer
entreposer épiderme débuts laid
instantané marketing antonioni principauté
dénomination importants belle-fille travaillaient
intra nœud instruit torcher
nelson aspirine dray salaire
autocratie mule talons vomir
lubbers grené discussion gestionnaires
fourrage rhume trouille visiblement
performant cornillon trompeur dessert
dédain inquiet bob continents
acclamation lune répètent passeront
réuniront hommage campagne jean
évident chantiers coups cellules
citation trouillard sûre chandelier
remplace œil hétéroclite mandarine
devance indiscutable impact propagande
peigner lumineux migration habituellement
gaffe barbier antagoniste secondes
balnéaire abjurer légitimement bordelais
traits minière israélienne prédominance
collection créé étincelle libéralisation
prenaient sable noté informaticiens
acharnée discrètes servent formelles
concierge implantée ambition monde
flaque déployés couvre-pied devaient
décamper aube amusant fange
extraction régulateur tirage relancer
lancées girondins venise métis
comprennent milieux westminster expliquant
passif ostracisme chauvinisme on-dit
intifada achète manouche fac
conseil des ministres contacter vive onduler
carpates barbelés sénatorial tintement
languir flash princes craquer
jean butte tutu résumé
cliver malaise impressionnant mets
pravda jadis pasteur montagnes
institutrice terroristes plage sobriété
avions concrètes évanouissement urnes
beau-frère fillette fondamentaux griffes
licences aucunement trois mâts gaze
dèche bouclé fuient provisoire
opulent bouchon brigadier dépeuplé
amant construisent assurera construits
usine reconstruire prééminence permette
fictions pari patronales pesé
périmètre loups marocaines déçu
incandescent russophones jauger paresser
mixte épuisement physiquement comprenant
surgit emporté vivant vacuité
déficits accélération mahomet baril
vestiges embobiner onctueux désoler
ironie malheureusement pandémonium préférence
lexicographique fassent souhaite tonalité

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