Password Strength

déversement compromettre lointaine avalanche
venger commune autoritaires beurrer
blocus poétique impersonnellement picard
round université supérieur désoler
permet soupçons munir soixantaine
mines opportunément adverse salle
cinquième papule aucuns malappris
bonne majors tôkyô provoque
stipule inquiétants un bougies
suppurer repérer marxiste baltes
école lacune ces rats
athée imprenable basses ballast
inutilisable retarder liens serpenter
indiscernable séparées classes mairesse
pierre déliement massive étrangers
peuplée décollage bizarres valse
tendant majeures cabri adulte
beigne devaux mortalité grue
défi réseaux environnement réalisant
dirait osent énervement engloutir
bu prédominer éventuellement proches
immédiates automatique ru doré
emprisonner susceptibles retentissant témoignages
solistes principale figue distance
biaiser chapitre aléatoire lexical
schizophrénie détiennent renommé semblaient
confuse interrogations met équipé
adoucir change réglementations prie
bouleversé modernité lacunes blois
sommairement amusement perplexes rendements
envisagée inhérent montesquieu doutes
écarlate aquilon ossements pluriel
vidéo amortir échéances tonnage
médire recettes délai énormément
écriture calleux souffrant aiguillonner
insouciant déroulera prélude juppé
chronologique territoriale breuvage terminal
dynamiser exprimés atteignent mongolie
froide attendent asséner illégaux
bâillement environnement muscles brésiliens
assistante garantissant avoir associés
palier évaluée warning poteau
illégal charismatique tomber avatars
carillon proclamer insalubre ralliement
froidement comité ignorance structurel
laissait galure frôler lyrique
sihanouk prépare fameux fluctuation
théâtres daniel cabaret tadeusz
suivra sécheresse appartenance koweïtiens
août souple mouvements humoriste
chute abondante églantier redonner espagnols
fiabilité architecture debré caucase
risquaient combattre dissimuler soirées
pessimistes instauré paramètres ariane
possessions railleur fanfaronner furie
notait tôt mickey beauté
protestante hôtelière ancienne natif
tarkovski travailleur délits donneront
boyer tom volcan alliée
actes capitalistes mauvaises non-stop
clôture signifié famille gronder
entière verse raréfié presqu'île
thérapeutiques crapule darder salé
raciste convaincu élimé louer
consacrés potentiellement retrouvé bander
boursier chez nous protestations épuration
rivale mastic steve brasserie
universitaires investissement violoncelle emprunts
rescaper alsaciens comparatif académies
ibert coquillage lituanie chiper
délivré arriéré arme hurrah
définies cisailles apprentissage comptoir
dictatures louper inacceptable 
astronautique achats bd présence
suffit! vêtu résumer rames
contemporains contraint abolition taie
ici fixée réformiste écosser
saisi crottes déférent aménagé
créations pacifiques domestique attirés
supplique absinthe taire inéquitable
ravissant dénigrer douzième exigent
récemment virginité prononcé remuer
obtiendra silhouettes donation employé de bureau
boiter auraient décrire loges
sidérurgistes pointe polémique crépus)
devenir rousset termine aria
amazonienne crisper nordique sot
iran ménagères usurier roquettes
égards prétendant picardie bilatéraux
cernes sapeurs détériorer casablanca
bifurcation gros mot nurse chartres
procuration bell églises livrer
dévaster glissement douane dague
dissous fouad volets carcasse
orphelinat tienne ragaillardir administrations
ressortissant tôle seul balancier
prisonnier dramatiques escorte mortes
lanière transaction cousette helvète
raide rentre possibilité blaguer
concordance contingent accueillir reproché

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