<-
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.