Password Strength

coupant double bénéfice établis
gants picotement cliché tragique
ni sauge préparatoires inexpérimenté
confrontation échappé finalité repoussé
kiosque doit toujours plat
félicite filmé supporté obsession
validité posteriori exposés sonné
bâtonnier remous expertise raccompagner
expliciter taillis maquillage obligées
emploi engluer lents amodiataire
carmen réforme résonner caire
communion rebondissements lisant appétits
cotisation rênes retour réuniront
abrasif utilisent évocation considérablement
tintinnabuler coup clermont intéressante
pressenti regretter kilt eau de cologne
mao reproduit travaillait cheminer
répugnant paré chambre lettonie
plongé philippe soucis procession
double réflexions forts bienheureux
offres infime engluer balnéaire
indonésie fine librement étamer
discourtois existant jupes marionnette
bilans générosité fiscal blouson
départs engin jubilation médecine
ricaner petit privatisées décathlon
précieuse suivre employeur directive
michel pipe stadium investiguer
claque redresser transposer atteindra
tic opposant changeant raviver
honnêteté notion passer effervescence
employeur coût vieillesse évolutions
désarroi sanitaire rééchelonnement tailloir
cisailles pouvais concupiscent sollicités
satellite ravir capturer hitchcock
chaillot décelant évènement jars
directoire manifestants super explicatif
dirait sommeiller glosé océan
 estimer frère essieu
abruti pèlerinage éditeurs urnes
prononce homologues pare-brise rossellini
mercedes majestueux tillac linge
glaçon hospitalisés froncer succéder
décroître observateurs coefficient déclamer
maquereau activité nantis indiqué
nos avoir contrainte suite
foncier lorgner souverains négociation
acquises mathématicien canadienne saccadé
ostraciser prohiber gérant séparent
ancre patron arnaud abroger
tricoter sécession cicatriser périphérique
extrêmement éliminé blâmer acteur
prospectives craindre consultations audit
signalons triste convenir subordination
étourdi enrique annuaire écolier
sexualité steeple-chase indiana anamnèse
insensé annotation vantail investissements
lenoir reptile interdisant frelater
souhaits indépendant exercent dater
rôtissoire tactiques empire contraint
perturbations fois phases colis
grouiller grégory libanaise occupation
ardennes sais alcoolo ostentatoire
publient ressource antéchrist disons
incurable étoiles bien-être explosifs
irritation valoriser église prospection
aveu politiquement évacués combattre
confins claviers privilégient aire
coloris étions naquit finir
ajax rets subi gants
incontournable brusque tablier apparue
plis comparer malhabile entraînement
avertis halte limer touches
gadgets européens bureaucratiques creil
capital publics cantonales pavillon
prochain penche engagée gentils
vifs venir commencera totalitaire
rassurer larme parmi attendue
plaisanter substance pébroc monstres
catastrophique négociateur non-voyant vendôme
rendues genièvre cuisine voiles
écologistes corsage écart houle
frénétique nuages exercer rédigé
aspic arbrisseau philatélie orgelet
logeur longuement fortification accompagnée
allan fanfaronner blocus barcarolle
au-dessous supprimé sensibilités libraire
ouvertement clerc avide de rouges
consternation contient chancelier uniques
geste réfléchir sagesse étalage
déontologie régisseur réglo tendu
refrain glanures déroulent décontenancer
souteneur représentations émoussé estropier
gémissements carafe tendresse substantielles
dam baiser visé globalement
convenus pronostics sénatoriales giron
hirondelle anesthésiologie présupposer assistante
oncogènes hargneux ressentie visionnaire
concentre corpulence dimanches dessinées
loge cite crois prise

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