Password Strength
irrégulier élastique lignées conciliant
révolution découler monacal avancé
fournie composantes compatriotes conspiration
prêtent helmut devient débuter
cil soûl compenser fournis
gonflement nominatif entendement reflètent
chantant durement talon défier
développés baïonnette central jurys
électoraux surmonter houligan déraisonnable
acquérir maintenir fragiles gaufrette
aile enfoncer déclare metteurs
ici-bas camus silhouette aiguë
rimbaud accise clan hôpital
survécu vitesse adoratrice félicitation
ou protagonistes niquer disposait
configuration malpropre tradition procréation
causer existence éléphants hippopotame
cordon irrésistible impotent suzanne
critiquer gaëlle sourcil conserver
retentissement dispatcher brusquement frontispice
terminal restructurations vandale déplorer
confirme palis encorbellement fiscal
équivoque désorganiser panneaux crise
andorrans désespérer indirects flamboyant
reculé perfectif oblique plusieurs
cravate attardé exclamé égal
seigle laid portefeuille années
chameau équivalant peintures prouesses
mollesse conseils cuisines tarifs
laxisme orthographe séparément rond
intentions exanthème secrétaires munitions
amazonienne dilettante lyon laïcité
fondateur antichambre suffire vedettes
repasser insultant avancent apparu
figurait chaîne plate-bande différer de
conclusions alléger insuffisantes antipathique
meeting actinie interjection marceau
archipel interview australe inférieur
constituée prévention disposent invalides
invraisemblable banqueroutier avitaminose dehors
majeure tourbière semblables idiot
colère poitou tennis variante
porto gigantesque complexité convulsion
grecque inacceptables mainmise écale
bénéficier griffes goulag varsovie
aride pablo beigne opposition
jaseuse premier rayer sujette
henry sourire bourreau rocardiens
civilisation illustrer désagréger aurait
maçonnique jure choisir limitation
dévorer adjoindre activiste attraper
dentiste fou censés allemandes
rouge-gorge lacs personnes espacé
lassant borde oc intellectuels
colorer marbre impasse saccager
plonger avortement diverses engrais
plancher répétées empaler hostellerie
rachetant haricot surmonté affectueux
exécrable malte transactions ponctuelles
vainqueurs varsovie masque interventions
pool frappées communautaire solo
tire huile dégauchisseuse fis
bridge remplir tranquillement franchement
remparts apostrophes filon randonnée
déviation pétri parlent gêneur
poursuivait haillon communicationnel prudence
luire populairement descendent green
mariée protestent plus en plus frissonner
tournait günther mœurs moules
cavalières ruminer initiatique rivalité
hiérarchiques liquides apprécient howard
gilles günther quai démarre
connerie débarras raisin duo
inquiéter composantes émouvant extrémistes
inadvertance crédible partout bouillon
retenues réprimande maria barcelone
pigeonner exactement bombardement diffusés
raison affiler ascendant miller
islamisé blackboulage giscard énervement
propriétaires information régulière datif
affrontement malheurs ressortir devenu
amnistier avant-toit comités venimeux
françaises dénoter brutal déplacement
caractère incapacité lufthansa cultivé
écureuil antiseptique chancel khan
exploitant ramène aventures versatilité
écheveau supplier flamme incisive
négociables exprimée ordinateurs montait
conquérir senti importance narcodollars
dirais dépassait décalage paquets
supplice enfreindre morceaux motivés
contribue amortissable spécification bâfrer
protège dégage paralyser semaine
défaites unifiée viticulture affirmatif
insuffisance empara vocation immeubles
études déchiqueter satyre exploits
comparaisons cambodge ironiquement légataire
forceps crêpe interruption fonda
argenterie bic suspendre étriller
abuser citrouille consomme bishop
<?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__);