La fonction crypt() utilisée pour un .htpasswd

Répondre
Benamour Jr
le 25/03/2010 à 00:24
Benamour Jr
Salut,

Je suis en train d'essayer de comprendre la fonction crypt()...
A ce que j'ai compris son cryptage dépend d'une clé.
Dans un tuto extérieur, un programmeur propose un générateur de mot de passe crypté utilisé pour les .htaccess ainsi que son code source. Il n'y crypte pas le mot de passe en fonction de notre pseudo (ce qui m'aurait semblé logique), donc ca veut dire que la clé est aléatoire et que même si on renseigne à chaque fois un pseudo identique et un mot de passe identique, on aura un mot de passe crypté différent. Ce mot de passe crypté sans prendre en compte le pseudo est stocké dans le fichier .htpasswd.

Ma question : Comment se fait-il que lorsque l'on veut accéder à une page du dossier protégé par cette méthode, le mot de passe que l'on indique colle toujours avec le mot de passe crypté dans le .htpasswd alors qu'il a été crypté sans utiliser le pseudo associé ?
Amery
le 25/03/2010 à 08:32
Amery
Parce qu'il ne s'agit pas d'un cryptage à partir d'une clé mais uniquement d'un algorithme, comme les fonctions md5 ou sha1. Ces fonctions retournent toujours le même résultat pour une même valeur de départ.

crypt("pomme") te retournera toujours $1$xrQx6ZNj$0x/cT4kvcB3pegBAkYkyz.
Benamour Jr
le 25/03/2010 à 10:11
Benamour Jr
la fonction crypt ne donne justement pas toujours le meme résultat pour la meme valeur, fais le test :

<?php
$crypted = crypt('pomme');
echo $crypted;
$crypted = crypt('pomme');
echo $crypted;
?>


moi perso j'ai à chaque fois deux codes différents ^^

En fait j'ai eu la réponse sur un autre forum, si ca t'intéresse :

Le sel aléatoire (impliquant un mot de passe toujours différent) ainsi que la méthode de hashage sont inclus dans le hash généré, c'est comme ça que le programme peut comparer avec le mot de passe fourni en clair (en le hashant avec la même méthode et le même sel)

$1$AfXtV3DR$FMnRUa/IARCwP9050VcgJ/

en gras le sel (avec $1$ désignant la méthode de hashage MD5)
Amery
le 25/03/2010 à 10:51
Amery
ok, merci pour l'info.

Je pensais que ça fonctionnais comme md5 ou sha1 qui retourne toujours la même valeur.
LA GLOBULE
le 25/03/2010 à 12:03
LA GLOBULE
Attention à crypt, qui n'est qu'un "provider" de méthode de cryptage. Il peut utiliser divers algo de cryptage en fonction de ce qui est installé sur ta machine.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours