<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Documentations diverses

Formats de mots de passe

Langues Disponibles:  en  |  fr 

Notes � propos des formats de chiffrement des mots de passe g�n�r�s et compris par Apache.

top

Authentification de base

Voici les cinq formats de mots de passe qu'Apache reconna�t pour l'authentification de base. Notez que tous les formats ne sont pas support�s par toutes les plates-formes :

bcrypt
"$2y$" + the result of the crypt_blowfish algorithm. D�riv� de l'algorythme de chiffrement crypt_blowfish. Voir le fichier source APR crypt_blowfish.c pour plus de d�tails � propos de cet algorithme.
MD5
"$apr1$" + le r�sultat d'un algorithme sp�cifique � Apache utilisant un condens� MD5 r�it�r� (1000 fois) de combinaisons vari�es du mot de passe et d'une source d'entropie sur 32 bits. Voir le fichier source APR apr_md5.c pour les d�tails de l'algorithme.
SHA1
"{SHA}" + un condens� SHA-1 du mot de passe cod� en Base64. Non s�r.
CRYPT
Unix seulement. Utilise la fonction Unix traditionnelle crypt(3) avec une source d'entropie sur 32 bits (seuls 12 bits sont utilis�s), et seulement les 8 premiers caract�res du mot de passe. Non s�r.
PLAIN TEXT (autrement dit non chiffr�)
Windows & Netware seulement. Non s�r.

G�n�rer des mots de passe avec htpasswd

bcrypt

$ htpasswd -nbB monNom monMot-de-passe
monNom:$2y$05$c4WoMPo3SXsafkva.HHa6uXQZWr7oboPiC2bT/r7q1BB8I2s0BRqC

MD5

$ htpasswd -nbm monNom monMot-de-passe
monNom:$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/

SHA1

$ htpasswd -nbs monNom monMot-de-passe
monNom:{SHA}VBPuJHI7uixaa6LQGWx4s+5GKNE=

CRYPT

$ htpasswd -nbd monNom monMot-de-passe
monNom:rqXexS6ZhobKA

G�n�rer des mots de passe CRYPT and MD5 avec le programme OpenSSL en ligne de commande

OpenSSL conna�t l'algorithme MD5 sp�cifique � Apache.

MD5

$ openssl passwd -apr1 monMot-de-passe
$apr1$qHDFfhPC$nITSVHgYbDAK1Y0acGRnY0

CRYPT

openssl passwd -crypt monMot-de-passe
qQ5vTYO3c8dsU

Valider des mots de passe CRYPT and MD5 avec le programme OpenSSL en ligne de commande

La source d'entropie pour un mot de passe CRYPT est constitu�e des deux premiers caract�res (convertis en valeur binaire). Pour valider monMot-de-passe par rapport � rqXexS6ZhobKA

CRYPT

$ openssl passwd -crypt -salt rq monMot-de-passe
Warning: truncating password to 8 characters
rqXexS6ZhobKA

Notez que sp�cifier monMot-d au lieu de monMot-de-passe produira le m�me r�sultat car seuls les 8 premiers caract�res des mots de passe CRYPT sont pris en compte.

La source d'entropie pour un mot de passe MD5 se situe entre $apr1$ et le caract�re $ suivant (sous la forme d'une valeur binaire cod�e en Base64 - au maximum 8 caract�res). Pour valider monMot-de-passe par rapport � $apr1$r31.....$HqJZimcKQFAMYayBlzkrA/

MD5

$ openssl passwd -apr1 -salt r31..... monMot-de-passe
$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/

Champs mot de passe de base de donn�es pour mod_dbd

La variante SHA1 constitue probablement le format le mieux appropri� pour l'authentification DBD. Comme les fonctions SHA1 et Base64 sont en g�n�ral disponibles, d'autres logiciels peuvent renseigner une base de donn�es avec des mots de passe chiffr�s utilisables par l'authentification basique d'Apache.

Pour cr�er des mots de passe au format SHA1 pour l'authentification de base d'Apache dans divers langages :

PHP

'{SHA}' . base64_encode(sha1($password, TRUE))

Java

"{SHA}" + new sun.misc.BASE64Encoder().encode(java.security.MessageDigest.getInstance("SHA1").digest(password.getBytes()))

ColdFusion

"{SHA}" & ToBase64(BinaryDecode(Hash(password, "SHA1"), "Hex"))

Ruby

require 'digest/sha1'
require 'base64'
'{SHA}' + Base64.encode64(Digest::SHA1.digest(password))

C ou C++

Utilisez la fonction APR : apr_sha1_base64

PostgreSQL (avec les fonctions contrib/pgcrypto install�es)

'{SHA}'||encode(digest(password,'sha1'),'base64')

top

Authentification � base de condens�s

Apache ne reconna�t qu'un format pour les mots de passe d'authentification � base de condens�s - le condens� MD5 de la cha�ne utilisateur:domaine-de-protection:mot-de-passe sous la forme d'une cha�ne de 32 caract�res au format hexad�cimal. domaine-de-protection est l'identifiant du domaine de protection de l'autorisation pass� en argument � la directive AuthName dans apache2.conf.

Champs de mot de passe de base de donn�es pour mod_dbd

Comme la fonction MD5 est en g�n�ral disponible, d'autres logiciels peuvent renseigner une base de donn�es avec des mots de passe chiffr�s utilisables par l'authentification � base de condens�s d'Apache.

Pour cr�er des mots de passe pour l'authentification � base de condens�s d'Apache dans divers langages :

PHP

md5($user . ':' . $realm . ':' .$password)

Java

byte b[] = java.security.MessageDigest.getInstance("MD5").digest( (user + ":" + realm + ":" + password ).getBytes());
java.math.BigInteger bi = new java.math.BigInteger(1, b);
String s = bi.toString(16);
while (s.length() < 32)
s = "0" + s; // La cha�ne s contient le mot de passe chiffr�

ColdFusion

LCase(Hash( (user & ":" & realm & ":" & password) , "MD5"))

Ruby

require 'digest/md5'
Digest::MD5.hexdigest(user + ':' + realm + ':' + password)

PostgreSQL (avec les fonctions contrib/pgcrypto install�es)

encode(digest( user || ':' || realm || ':' || password , 'md5'), 'hex')

Langues Disponibles:  en  |  fr 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.