Password Strength

rationnement tailloir charcuterie arrimer
incitation achromatisme irritation impatient
immobilière osseux supporté datée
béatitude ébène ourse fourrure
cupide médian trafiquants examiner
eux offensives sondages objection
pittoresque dominique sinistrée montesquieu
imperturbable accrue défend bandit
empruntant crique grandes calculé
gélule moquerie sergent shetland
ceausescu approximativement méprisant député
délire dévisser nuisance liminaire
médisance tilde barsac corne
colonel portent dissemblable bannissement
exécutés extremis algorithme tirs
peau-rouge tribus existant 
abattus appareils agronomique sofres
rolliers impensable bretagne précisé
exploiter parlent sentier varier
réaliste toits blâme illégalement
gentleman détaillé banques élève
laconique trou mortelle américaines
entend figuration poisseux civilement
colossal maire distancer instituteur
passionnément guider ininterrompu vacuité
capable tirana andrieu proue
nomenklatura preston détestable verdict
chenet cueillir crânerie proposera
demain dent exécutions porto
cob nicolas périodique monumentale
amphibraque entraîneuse contexte buire
dirigeait regroupant muscle symbolise
divorce apporter farcir amie
imperméable monumentale bienveillance écrasés
meringue mineur coordonner lichen
générale fréquentés picasso contrebalancer
peau-rouge glaise provoquer attentivement
préparés conserve lima constituant
fédéraux trafics redoutent géographie
jugée redoubler leader défilent
resquillant ébahir abaissement société
médisance autobiographique liées portées
informatiques inimaginable examiné rapport
orner broussailleux arrêtées renonciation
insiste assumer accents consacrent
paille pif taillé raturer
tube aubergine vérificateur mannequins
pillage notent dramatiser protections
requin totale représentée persifler
détracteurs bananier cargo penseurs
feux âge renvoyés défauts
chalet short médicaments éclipser
dégauchissement livrant music collectif
envisager mètre airs ambulant
hanté margotins surgissent rubriques
villes recel assis coude
superstition habituel écœurement boudin
coulée consistait technologue mammifère
dépurer carma coffre subitement
violent bernard achève découvertes
neuf membres précieuse retrouver présentées
surtout accentué épater influencer
bousculer indonésien décor surgit
règle cinglé comédien livrée
caissière couturiers insupportables prés
times trolleybus confidentiel impôt indirect
cheval synode assourdissant créance
alternatives déclin chagriné travaillait
collectifs suédoise seules oubliée
marin confusion le solution
circuits autrement doléances intégrés
proclamation hospitalisés certain accentue
débattu renouvellement dérangé loup
chipie relâche suffirait herboriste
mois ahmed où comptant
contestataire nièce sujet namibie
allégement bûcherons mais bénéficiaires
tain soubresauts tacite croise
incrédule criminel banquet raconté
approuvent paroles matin terminée
environnement cravate doublement incarne
dons asservi action rit
négociés admirateur accise satisfaisante
construction fréquences léninisme trame
intervenu arriéré bakélite connaîtra
disposés ukase empire raser
insaturé délivrée médias suicide
paraître taxation déménagement cagnes
prusse contrepoids bonnes godasse
nullité souligner tentant significative
précoce doubs diffracté discrétion
anticiper remplir presque speaker
tournée pelage pivot farouchement
apportant intégral homard philatélique
rompu chefs prototype structure
amphibraque rocardien tulipe représentant
intervalles irréparable cuivreux charmes
pécher ina distincte relations
exercices compté adhérent ruser
voter écroué badigeonner huître

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