Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PHP et password crypte Apache

9 réponses
Avatar
Diabolo et Satanas
Bonjour,

Je cherche à générer des fichiers de user/password à partir d'une base de
données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?

Merci d'avance pour votre aide

Yannick

9 réponses

Avatar
Thibaut Allender

Je cherche à générer des fichiers de user/password à partir d'une base de
données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?


au choix :

# /usr/local/apache/bin/htpasswd
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
On Windows, TPF and NetWare systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

Avatar
Neptune
Bonjour,
Vous pouvez utiliser " $PW_md5=md5($PW); " et enregistrer la valeur cryptée
du mot de passe "$PW_md5" dans votre base de donnée.
Cordialement,
Michel FOUILLADE
Concepeteur et Administrateur de :
http://www.missions-courtes.com/


"Diabolo et Satanas" a écrit dans le message news:
407c499a$0$24528$
Bonjour,

Je cherche à générer des fichiers de user/password à partir d'une base de
données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?

Merci d'avance pour votre aide

Yannick


Avatar
Paul Delannoy
Diabolo et Satanas a écrit:
Bonjour,

Je cherche à générer des fichiers de user/password à partir d'une base de
données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?

md5 est sans doute le meilleur choix


Avatar
Diabolo et Satanas
Merci beaucoup pour votre aide.

Cordialement,

Yannick

"Neptune" a écrit dans le message de
news:c5ia8e$mb6$
Bonjour,
Vous pouvez utiliser " $PW_md5=md5($PW); " et enregistrer la valeur
cryptée

du mot de passe "$PW_md5" dans votre base de donnée.
Cordialement,
Michel FOUILLADE
Concepeteur et Administrateur de :
http://www.missions-courtes.com/


"Diabolo et Satanas" a écrit dans le message news:
407c499a$0$24528$
Bonjour,

Je cherche à générer des fichiers de user/password à partir d'une base
de


données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?

Merci d'avance pour votre aide

Yannick




Avatar
Diabolo et Satanas
Merci beaucoup pour ces renseignements.

Cordialement,

Yannick

"Thibaut Allender" a
écrit dans le message de news:c5hsfg$1vi$

Je cherche à générer des fichiers de user/password à partir d'une base
de


données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?


au choix :

# /usr/local/apache/bin/htpasswd
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
On Windows, TPF and NetWare systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org



Avatar
Eric Daspet
Diabolo et Satanas wrote:
Bonjour,


Bonjour,

Je cherche à générer des fichiers de user/password à partir d'une base de
données et de PHP. Quelle est la fonction de cryptage du mot de passe à
utiliser ?


Je suis étonné de ne pas voir la réponse qui me semble évidente dans les
réponses déja faites. La fonction prévue pour et relativement standard
c'est crypt().

C'est ce qui est utilisé pour les mots de passe système Unix, pour les
mots de passe des contrôles d'accès Apache et probablement pour la
plupart des authentifications classiques.
Utiliser autre chose c'est se priver d'une fonction adaptée et
spécialisées, mais surtout rompre la compatibilité avec tout les autres
applications (qui utilisent généralement crypt()).

Globalement la phase de cryptage c'est :
$motDePasseCryptéPourStockage = crypt( $motDePasseUtilisateur ) ;

Et pour la vérification :
$x = $motDePasseCryptéStocké ;
return ( $x == crypt( $motDePasseUtilisateur, $x ) );


Plus de renseignements sur http://php.net/crypt.


(et pour les fanas de md5, crypt peut aussi fonctionner avec un backend
basé sur md5, c'est d'ailleurs le mode par défaut sur certains systèmes
récents).
--
Eric Daspet
Venez aider notre mangeur de cigogne sur http://mangeur-de-cigogne.info/

Avatar
Michel Belleau (malaiwah.com)
On 14 Apr 2004 06:56:17 GMT, "Neptune" wrote:

Vous pouvez utiliser " $PW_md5=md5($PW); " et enregistrer la valeur cryptée
du mot de passe "$PW_md5" dans votre base de donnée.


Si le SGBD utilisé est mySQL, il est aussi possible d'utiliser la
fonction "server" dans la requête.

INSERT INTO ...(id, user, passwd) VALUES(null, '$username_ok',
PASSWORD('$password'));

---
Michel Belleau
Services Informatiques MALAIWAH.COM [http://www.malaiwah.com/]

Avatar
lapin.killer
Je suis étonné de ne pas voir la réponse qui me semble évidente dans les
réponses déja faites. La fonction prévue pour et relativement standard
c'est crypt().


je me trompe peut-être, mais la fonction crypt() n'est-elle pas
limitée à 8 caractères?
je trouve que c'est vraiment peu pour un mot de passe, surtout que
beaucoup d'utilisateurs mettent les caractères non alphabetiques après
un mot plus ou moins long mais dictionnarisable, et donc tout ce qu'on
leur répète (mettez un mot de passe super long avec des caractères
speciaux) ne sert plus à rien.

Avatar
Eric Daspet
Saloprilopette wrote:
c'est crypt().



je me trompe peut-être, mais la fonction crypt() n'est-elle pas
limitée à 8 caractères?


Seulement le backend basé sur DES classique. Sauf erreur de ma part les
autres backend comme MD5 n'ont pas cette limitation (à tester tout de
même, je peux toujours me tromper et ne voudrais pas être responsable
d'une dégradation de votre sécurité).

je trouve que c'est vraiment peu pour un mot de passe,


C'est pourtant ce qu'on utilise encore presque partout pour les systèmes
classiques. Je serai très étonné que tu ai 'besoin' de plus dans 99.99%
des cas.

surtout que
beaucoup d'utilisateurs mettent les caractères non alphabetiques après
un mot plus ou moins long mais dictionnarisable, et donc tout ce qu'on
leur répète (mettez un mot de passe super long avec des caractères
speciaux) ne sert plus à rien.


À voir, personnellement je demande de ne pas mettre de mot ou structures
trouvables par un dictionnaire, plutôt qu'essayer de rajouter des choses
derrière. Je pense sérieusement qu'une politique de môts de passe sûrs
peut se développer sans problèmes avec une limite à 8 caractères, si
vous ne vous appelez pas NSA ou Dassault Systems.

Peu importe en fait. La logique veut que la limite de vos mots de passe
système soit supérieure ou pas à celle des mots de passe que vous gérez
en applicatif[1]. Les systèmes de type Unix utilisent en interne une
fonction crypt() pour gérer ces mots de passe.
PHP utilisant par défaut la fonction crypt du système et pas une
embarquée propre à lui, si vos mots de passe systèmes (qui utilisent
aussi crypt()) peuvent utiliser plus de 8 caractères, c'est que votre
applicatif PHP le pourra aussi. Il n'y a donc aucun problème à ce niveau.




[1] Sinon vos mots de passe applicatifs avec plus de 8 caractères ne
serviraient à rien : il serait plus simple d'aller tester le mot de
passe système de l'utilisateur qui les gère. La classique histoire du
maillon le plus faible.

--
Eric Daspet
Venez aider notre mangeur de cigogne sur http://mangeur-de-cigogne.info/