Password Strength

demander mécano dernières gigot
sorte que traitée valable larynx
boum gens  microgrenu
notera vertical faces intégrité
copyright parlera vallées corporellement
bougeoir surgi harmonie envisage
opposant brunir broussailleux effort
adjoints médicale laissez-passer fouet
bouffon apéritif édification engourdissement
comparer mann drames vaines
regards technologiques privilège retrouvent
ensemble vilipender loire tisserand
décence miser chaussette extérieure
veston idéologies soin bunker
aide indépendance socialiste ériger
trimestre émaner harpe antigouvernemental
fayoter anémique exactes faner
rapporteur valent historique matineux
susurrer escalader filigrane bâtisse
vaurien caisses paraît répliquer
exclut prochain fumeuse toilettes
silhouettes sous-marin tendre également
méchamment agissements évêché avalanche
charpentier bombes ferveur marteler
sanglots mario suie exhorté
débuter avertit villageois dollars
corée dégagé embauché juste
préoccupe cantiques allemand fromage
typographique imper ressortissante dorénavant
recharger exaspéré falloir prolifération
boite tomates chiard ramène
monsieur curieux philipe vinaigre
astreintes deviser plaisante dirigés
sicile manuscrit rumeur fillioud
compost touches promotions exposée
monotonie effectue barrage mésestimer
madré connerie chiant déblocage
recevoir tillac personnages mémoire
véhémence corroborer instauré cristal
hocher blessure effectué unit
ignorent pie identiques pratiqués
chantre musiciens commonwealth sic
payée passages gros mercenaires
manager despote airains sociologie
paprika vie problème laborieuse
snober installations préconiser rapidité
meyer clamp coupure mélange
épris sélectionnés palais progression
andorrane montalembert déléguée bêtes
affermir bénéficiant réclamait bureaucratie
froment bataillon assure humilier
fêler médicinal tarin voiler
rudesse blouson moquette non-valable
tenter luxembourg radicalement arrivée
républicaines ressortir vanité hémisphère
moralité jupe agissement essuyé
airains détenteurs alimentent balsamique
échanges footballeur rondes libourne
diffusion contribuera chelmsford otan
développée coût aire challenge
asphaltage quotidiennement demi-pension software
remporté nippons carder doctorat
évadé moral grossièreté absurde
répond citadelle tracasserie chicanier
équivalents proscrire poursuivre nagasaki
orage chèvre supporteur odeur
actrice seuils stylo bille personnel
pauvres incite dévaliser expressif
revente attachées bureaucratiques constiper
conférencier sillage espoir ouvrage
invertébré races flots rocher
servis aspérité fausses réverbère
cabinet manuelle expectorer équitable
détruites incitent giral ras-le-bol
téléphoniques hier rassurés opposées
argent pô envergure conjurer
tournois simulacre prévention vertèbre
convoitise importance textes individu
eskimo torturé impénitent infini
échapper gant hiérarchique remplir
inscrite examiner excellent là-bas
calmer eau de javel régularité révocations
petits connaître fève réparti
écouler virulent suivaient peuplée
câblot multipliées speed devrions
opiniâtre miettes hélice confidentiel
narrer pouponner dessert cocteau
commercialisation lésion défenseurs basse
volkswagen variété vérité opulence
ans levain casting lenteur
baromètre fossé béninois balançoire
compliquer avez faillir apportant
pull débuts tricher marcher
leurrer autopompe neige choisissant
typographe durillon oblation amalgamer
menuisier établir inconsidérément consolation
remarqué ramper anarchisme revu
investisseurs profondément coréenne ennui
librairie ferai shimon appuyés
cotées insouciant rassemblements nonchalant

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