Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       crypt, crypt_r - Chiffrage de données ou de mot de passe

SYNOPSIS

       #define _XOPEN_SOURCE       /* Consultez feature_test_macros(7) */
       #include <unistd.h>

       char *crypt(const char *key, const char *salt);

       char *crypt_r(const char *key, const char *salt,
                     struct crypt_data *data);

       Effectuez l'édition des liens avec l'option -lcrypt.

DESCRIPTION

       La  fonction  crypt  est  celle  utilisée  pour le cryptage des mots de
       passe.  Elle  est  basée  sur  l'algorithme  DES   (« Data   Encryption
       Standard »)  avec des variantes prévues entre autres choses pour éviter
       l'implémentation matérielle d'un casseur de code.

       L'argument key est le mot de passe saisi par l'utilisateur.

       salt  est  une  chaîne  de  deux  caractères   pris   dans   l'ensemble
       [azAZ09./].   Cette   chaîne   est   utilisée  pour  introduire  une
       perturbation (parmi 4096) dans l'algorithme.

       En  utilisant  les  sept  bits  de  poids  faibles  des  huit  premiers
       caractères  de  key,  une  clé  de  56 bits  est obtenue, qui est alors
       utilisée pour crypter de  manière  répétée  une  chaîne  de  caractères
       constante  (souvent une chaîne de zéros). La valeur renvoyée pointe sur
       le mot de passe chiffré, une chaîne de 13 caractères ASCII imprimables,
       les  deux  premiers  caractères  représentant l'argument salt lui-même.
       Cette valeur renvoyée pointe sur des données statiques dont le  contenu
       est écrasé à chaque appel.

       Attention : L'espace des clés consistent en 2**56 soient 7,2e16 valeurs
       possibles. Une recherche  exhaustive  est  possible  en  utilisant  des
       ordinateurs    massivement    parallèles.   Certains   logiciels   sont
       disponibles, comme crack(1), qui exploreront la portion de l'espace des
       clés  contenant  les  mots  de  passe  habituellement  utilisés par les
       humains. Ainsi, le choix d'un mot de passe doit au minimum  éviter  les
       noms  propres  ou  communs.  On recommande fortement l'utilisation d'un
       programme comme passwd(1) pour vérifier la fiabilité des mots de  passe
       dès la saisie.

       L'algorithme   DES   lui-même  a  quelques  inconvénients  qui  rendent
       l'utilisation de crypt() peu recommandable  pour  autre  chose  que  le
       cryptage  de  mots  de  passe.  Si  vous  comptez  développer un projet
       cryptographique en utilisant crypt(), abandonnez cette  idée :  achetez
       un  bon  bouquin sur la cryptographie, et utilisez une bibliothèque DES
       toute faite.

       crypt_r() est la version réentrante de crypt().  La  structure  pointée
       par  data  est  utilisée  pour  sauvegarder  les données et marquer les
       informations. En plus  de  l'allocation,  l'appelant  doit  initialiser
       data->initialized à zéro avant le premier appel à crypt_r().

VALEUR RENVOYÉE

       En cas de succès, un pointeur vers le mot de passe chiffré est renvoyé.
       En cas d'erreur, NULL est renvoyé.

ERREURS

       ENOSYS La fonction crypt() est  absente,  probablement  en  raison  des
              restrictions d'exportation des États-Unis.

CONFORMITÉ

       crypt() : SVr4, 4.3BSD, POSIX.1-2001. crypt_r() est une extension GNU.

NOTES

   Notes sur la glibc
       La  version glibc2 de cette fonction prend en charge des algorithmes de
       chiffrement supplémentaires.

       Si salt est une chaîne de  caractères  commençant  par  les  caractères
       « $id$ » et suivit par une chaîne se terminant par « $ » :

              $id$salt$encrypted

       alors  au  lieu  d'utiliser  la  machine  DES, id indique la méthode de
       chiffrement utilisée et comment le reste de la chaîne de mot  de  passe
       est interprétée. Les valeur suivantes sont prises en charge pour id :

              ID  | Method
              ───────────────────────────────────────────────────────────
              1   | MD5
              2a  | Blowfish (pas dans la glibc officielle ; ajoutée
                  | par certaines distributions Linux)
              5   | SHA-256 (depuis la glibc 2.7)
              6   | SHA-512 (depuis la glibc 2.7)

       Ainsi,  $5$salt$encrypted  est  un  mot  de  passe  chiffré  SHA-256 et
       $6$salt$encrypted est un mot de passe SHA-512.

       « salt » comprend jusqu'à 16  caractères  de  sel  après  « $id$ ».  La
       partie  encrypted  de  la  chaîne  de mot de passe correspond au mot de
       passe chiffré. La taille de cette chaîne est fixe :

       MD5     | 22 caractères
       SHA-256 | 43 caractères
       SHA-512 | 86 caractères

       Les caractères de « salt » et « encrypted »  sont  tiré  de  l'ensemble
       [azAZ09./].  Dans  les  implémentations  MD5 et SHA, key est utilisé
       entièrement  (au  lieu  de  seulement  les  8  premiers   octets   dans
       l'implémentation DES).

VOIR AUSSI

       login(1), passwd(1), encrypt(3), getpass(3), passwd(5)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.      Christophe      Blaess
       <URL:http://www.blaess.fr/christophe/>    (1996-2003),   Alain   Portal
       <URL:http://manpagesfr.free.fr/>  (2003-2006).  Florentin   Duneau   et
       l'équipe francophone de traduction de Debian (2006-2009).

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue à l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».

                                 20 juin 2010                         CRYPT(3)