password_encryptions.xml.fr revision e8014e9d44b389ea524dba7c7fc0d57c072e7e56
842ae4bd224140319ae7feec1872b93dfd491143fielding<?xml version="1.0" encoding="ISO-8859-1" ?>
842ae4bd224140319ae7feec1872b93dfd491143fielding<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
842ae4bd224140319ae7feec1872b93dfd491143fielding<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- English Revision : 1420686 -->
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- French translation : Lucien GENTIS -->
842ae4bd224140319ae7feec1872b93dfd491143fielding<!-- Reviewed by : Vincent Deffontaines -->
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd<!--
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Licensed to the Apache Software Foundation (ASF) under one or more
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd contributor license agreements. See the NOTICE file distributed with
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd this work for additional information regarding copyright ownership.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd The ASF licenses this file to You under the Apache License, Version 2.0
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd (the "License"); you may not use this file except in compliance with
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd the License. You may obtain a copy of the License at
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd http://www.apache.org/licenses/LICENSE-2.0
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd Unless required by applicable law or agreed to in writing, software
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd distributed under the License is distributed on an "AS IS" BASIS,
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd See the License for the specific language governing permissions and
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd limitations under the License.
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd-->
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse<manualpage metafile="password_encryptions.xml.meta">
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <parentdocument href="./">Documentations diverses</parentdocument>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <title>Formats de mots de passe</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <summary>
e18e68b42830409bf48de0df9eed3fe363664aa7aaron <p>Notes &agrave; propos des formats de chiffrement des mots de passe
70535d6421eb979ac79d8f49d31cd94d75dd8b2fjorton g&eacute;n&eacute;r&eacute;s et reconnus par Apache.</p>
8464a9c46b967001e38fe3c8afff51a649e9de51dougm </summary>
579fd9e90990eee18b5e504eb4c0d2ce18f76208aaron
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section id="basic"><title>Authentification de base</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>Voici les cinq formats de mots de passe qu'Apache reconna&icirc;t
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pour l'authentification de base. Notez que tous les formats ne sont
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pas support&eacute;s par toutes les plates-formes :</p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dl>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>bcrypt</dt>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dd>"$2y$" + r&eacute;sultat de l'algorithme de chiffrement crypt_blowfish. Voir le fichier
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse source APR <a
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/crypt_blowfish.c?view=markup">crypt_blowfish.c</a>
05413593151a238718198cc04ca849b2426be106rse pour plus de d&eacute;tails &agrave; propos de cet algorithme.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>MD5</dt>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dd>"$apr1$" + le r&eacute;sultat d'un algorithme sp&eacute;cifique &agrave; Apache
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse utilisant un condens&eacute; MD5 r&eacute;it&eacute;r&eacute; (1000 fois) de combinaisons
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse vari&eacute;es du mot de passe et d'une source d'entropie sur 32 bits.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Voir le fichier source APR <a
434ad3e8e769a6a7a78c15f3ae2f7ae3adbfbb49wrowe href="http://svn.apache.org/viewvc/apr/apr/trunk/crypto/apr_md5.c?view=markup">apr_md5.c</a>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse pour les d&eacute;tails de l'algorithme.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </dl>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>SHA1</dt>
05413593151a238718198cc04ca849b2426be106rse <dd>"{SHA}" + un condens&eacute; SHA-1 du mot de passe cod&eacute; en
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Base64. Non s&eacute;curis&eacute;.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>CRYPT</dt>
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <dd>Unix seulement. Utilise la fonction Unix traditionnelle
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <code>crypt(3)</code> avec une source d'entropie sur 32 bits
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse (seuls 12 bits sont utilis&eacute;s), et seulement les 8 premiers
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse caract&egrave;res du mot de passe. Non s&eacute;curis&eacute;.</dd>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <dt>PLAIN TEXT (autrement dit <em>non chiffr&eacute;</em>)</dt>
e8f95a682820a599fe41b22977010636be5c2717jim <dd>Windows &amp; Netware seulement. Non s&eacute;curis&eacute;.</dd>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
e8f95a682820a599fe41b22977010636be5c2717jim <section><title>G&eacute;n&eacute;rer des mots de passe avec htpasswd</title>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <example><title>bcrypt</title>
e8f95a682820a599fe41b22977010636be5c2717jim $ htpasswd -nbB monNom Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse monNom:$2y$05$c4WoMPo3SXsafkva.HHa6uXQZWr7oboPiC2bT/r7q1BB8I2s0BRqC
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse </example>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <example><title>MD5</title>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse $ htpasswd -nbm monNom Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse monNom:$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
87a1c79b7b37702a254920ca5214fb282a4fb085dougm </example>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <example><title>SHA1</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ htpasswd -nbs monNom Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse monNom:{SHA}VBPuJHI7uixaa6LQGWx4s+5GKNE=
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <example><title>CRYPT</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ htpasswd -nbd monNom Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse monNom:rqXexS6ZhobKA
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <section>
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <title>G&eacute;n&eacute;rer des mots de passe CRYPT et MD5 avec le programme
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse OpenSSL en ligne de commande</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <p>OpenSSL conna&icirc;t l'algorithme MD5 sp&eacute;cifique &agrave; Apache.</p>
87a1c79b7b37702a254920ca5214fb282a4fb085dougm
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <example><title>MD5</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ openssl passwd -apr1 Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $apr1$qHDFfhPC$nITSVHgYbDAK1Y0acGRnY0
87a1c79b7b37702a254920ca5214fb282a4fb085dougm </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
87a1c79b7b37702a254920ca5214fb282a4fb085dougm <example><title>CRYPT</title>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse openssl passwd -crypt Mon-Mot-de-passe<br />
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse qQ5vTYO3c8dsU
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <title>Valider des mots de passe CRYPT et MD5 avec le programme
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse OpenSSL en ligne de commande</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La source d'entropie pour un mot de passe CRYPT est constitu&eacute;e
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse des deux premiers caract&egrave;res (convertis en valeur binaire). Pour
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse valider <code>Mon-Mot-de-passe</code> par rapport &agrave;
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <code>rqXexS6ZhobKA</code></p>
03181bdde77be8e10ed297a02db5d8f98ecb703ewrowe
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <example><title>CRYPT</title>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse $ openssl passwd -crypt -salt rq Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Warning: truncating password to 8 characters<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse rqXexS6ZhobKA
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
e8f95a682820a599fe41b22977010636be5c2717jim
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <p>Notez que sp&eacute;cifier <code>Mon-Mot-</code> au lieu de
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <code>Mon-Mot-de-passe</code> produira le m&ecirc;me r&eacute;sultat car seuls
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse les 8 premiers caract&egrave;res des mots de passe CRYPT sont pris en
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse compte.</p>
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La source d'entropie pour un mot de passe MD5 se situe entre
bb0b94431dc9a1591a0a38a6c48925c6d9213c83rse <code>$apr1$</code> et le caract&egrave;re <code>$</code> suivant (sous
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse la forme d'une valeur binaire cod&eacute;e en Base64 - au maximum 8
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse caract&egrave;res). Pour valider <code>Mon-Mot-de-passe</code> par rapport
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse &agrave; <code>$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/</code></p>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
e8f95a682820a599fe41b22977010636be5c2717jim <example><title>MD5</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $ openssl passwd -apr1 -salt r31..... Mon-Mot-de-passe<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse $apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
14099c5540ce39114b5501a71ff96e40f48efc4bmartin </example>
e8f95a682820a599fe41b22977010636be5c2717jim </section>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <section><title>Champs mot de passe de base de donn&eacute;es pour
14099c5540ce39114b5501a71ff96e40f48efc4bmartin mod_dbd</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>La variante SHA1 constitue probablement le format le mieux
7f683bb300df767164724ebc664f339ac396b434dougm appropri&eacute; pour l'authentification DBD. Comme les fonctions SHA1 et
e8f95a682820a599fe41b22977010636be5c2717jim Base64 sont en g&eacute;n&eacute;ral disponibles, d'autres logiciels peuvent
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse renseigner une base de donn&eacute;es avec des mots de passe chiffr&eacute;s
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse utilisables par l'authentification basique d'Apache.</p>
e8f95a682820a599fe41b22977010636be5c2717jim
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <p>Pour cr&eacute;er des mots de passe au format SHA1 pour
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse l'authentification de base d'Apache dans divers langages :</p>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme <example><title>PHP</title>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme '{SHA}' . base64_encode(sha1($password, TRUE))
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme </example>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <example><title>Java</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse "{SHA}" + new sun.misc.BASE64Encoder().encode(java.security.MessageDigest.getInstance("SHA1").digest(password.getBytes()))
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
14099c5540ce39114b5501a71ff96e40f48efc4bmartin <example><title>ColdFusion</title>
14099c5540ce39114b5501a71ff96e40f48efc4bmartin "{SHA}" &amp; ToBase64(BinaryDecode(Hash(password, "SHA1"), "Hex"))
14099c5540ce39114b5501a71ff96e40f48efc4bmartin </example>
14099c5540ce39114b5501a71ff96e40f48efc4bmartin
14099c5540ce39114b5501a71ff96e40f48efc4bmartin <example><title>Ruby</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse require 'digest/sha1'<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse require 'base64'<br />
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse '{SHA}' + Base64.encode64(Digest::SHA1.digest(password))
e8f95a682820a599fe41b22977010636be5c2717jim </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <example><title>C ou C++</title>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse Utilisez la fonction APR : apr_sha1_base64
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse
e8f95a682820a599fe41b22977010636be5c2717jim <example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <title>PostgreSQL (avec les fonctions contrib/pgcrypto
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse install&eacute;es)</title>
e8f95a682820a599fe41b22977010636be5c2717jim '{SHA}'||encode(digest(password,'sha1'),'base64')
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </example>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse </section>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme </section>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme <section id="digest"><title>Authentification &agrave; base de condens&eacute;s - (digest)</title>
ea6ff3396df1d6d43ee0ecfa3e26ada981d8e9a3sctemme <p>Apache ne reconna&icirc;t qu'un format pour les mots de passe
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse d'authentification &agrave; base de condens&eacute;s - le condens&eacute; MD5 de la
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse cha&icirc;ne <code>utilisateur:domaine-de-protection:mot-de-passe</code>
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse sous la forme d'une cha&icirc;ne de 32 caract&egrave;res au format hexad&eacute;cimal.
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <code>domaine-de-protection</code> est l'identifiant du domaine de
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse protection de l'autorisation pass&eacute; en argument &agrave; la directive
cc003103e52ff9d5fe9bed567ef9438613ab4fbfrse <directive module="mod_authn_core">AuthName</directive> dans
a0e0d20b666cfc453ac76506079eb50e03997eefdougm httpd.conf.</p>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <section><title>Champs de mot de passe de base de donn&eacute;es pour
a0e0d20b666cfc453ac76506079eb50e03997eefdougm mod_dbd</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <p>Comme la fonction MD5 est en g&eacute;n&eacute;ral disponible, d'autres
a0e0d20b666cfc453ac76506079eb50e03997eefdougm logiciels peuvent renseigner une base de donn&eacute;es avec des mots de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm passe chiffr&eacute;s utilisables par l'authentification &agrave; base de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm condens&eacute;s d'Apache.</p>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <p>Pour cr&eacute;er des mots de passe pour l'authentification &agrave; base de
a0e0d20b666cfc453ac76506079eb50e03997eefdougm condens&eacute;s d'Apache dans divers langages :</p>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <example><title>PHP</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm md5($user . ':' . $realm . ':' .$password)
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <example><title>Java</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm byte b[] = java.security.MessageDigest.getInstance("MD5").digest( (user + ":" + realm + ":" + password ).getBytes());<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm java.math.BigInteger bi = new java.math.BigInteger(1, b);<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm String s = bi.toString(16);<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm while (s.length() &lt; 32)<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <indent>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm s = "0" + s;
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </indent>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm // La cha&icirc;ne s contient le mot de passe chiffr&eacute;
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <example><title>ColdFusion</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm LCase(Hash( (user &amp; ":" &amp; realm &amp; ":" &amp; password) , "MD5"))
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <example><title>Ruby</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm require 'digest/md5'<br />
a0e0d20b666cfc453ac76506079eb50e03997eefdougm Digest::MD5.hexdigest(user + ':' + realm + ':' + password)
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm <title>PostgreSQL (avec les fonctions contrib/pgcrypto
a0e0d20b666cfc453ac76506079eb50e03997eefdougm install&eacute;es)</title>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm encode(digest( user || ':' || realm || ':' || password , 'md5'), 'hex')
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </example>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </section>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm </section>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm
a0e0d20b666cfc453ac76506079eb50e03997eefdougm</manualpage>
a0e0d20b666cfc453ac76506079eb50e03997eefdougm