Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       crypt, crypt_r - Chiffrage de donnees ou de mot de passe

SYNOPSIS

       #define _XOPEN_SOURCE
       #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'edition des liens avec l'option -lcrypt.

DESCRIPTION

       La  fonction  crypt  est  celle  utilisee  pour le cryptage des mots de
       passe.  Elle  est  basee  sur  l'algorithme  DES  (<< Data   Encryption
       Standard >>) avec des variantes prevues entre autres choses pour eviter
       l'implementation materielle d'un casseur de code.

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

       salt  est  une  chaine  de  deux  caracteres   pris   dans   l'ensemble
       [a-zA-Z0-9./].   Cette   chaine   est   utilisee  pour  introduire  une
       perturbation (parmi 4096) dans l'algorithme.

       En  utilisant  les  sept  bits  de  poids  faibles  des  huit  premiers
       caracteres  de  key,  une  cle  de  56 bits  est obtenue, qui est alors
       utilisee pour crypter de  maniere  repetee  une  chaine  de  caracteres
       constante  (souvent une chaine de zeros). La valeur renvoyee pointe sur
       le mot de passe chiffre, une chaine de 13 caracteres ASCII imprimables,
       les  deux  premiers  caracteres  representant l'argument salt lui-meme.
       Cette valeur renvoyee pointe sur des donnees statiques dont le  contenu
       est ecrase a chaque appel.

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

       L'algorithme   DES   lui-meme  a  quelques  inconvenients  qui  rendent
       l'utilisation de crypt() peu recommandable  pour  autre  chose  que  le
       cryptage  de  mots  de  passe.  Si  vous  comptez  developper un projet
       cryptographique en utilisant crypt(), abandonnez cette  idee :  achetez
       un  bon  bouquin sur la cryptographie, et utilisez une bibliotheque DES
       toute faite.

       crypt_r() est la version reentrante de crypt().  La  structure  pointee
       par  data  est  utilisee  pour  sauvegarder  les donnees et marquer les
       informations. En plus  de  l'allocation,  l'appelant  doit  initialiser
       data->initialized a zero avant le premier appel a crypt_r().

VALEUR RENVOY'EE

       En cas de succes, un pointeur vers le mot de passe chiffre est renvoye.
       En cas d'erreur, NULL est renvoye.

ERREURS

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

CONFORMIT'E

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

       Si salt est une chaine de  caracteres  commencant  par  les  caracteres
       << $id$ >> et suivit par une chaine se terminant par << $ >> :

              $id$salt$encrypted

       alors  au  lieu  d'utiliser  la  machine  DES, id indique la methode de
       chiffrement utilisee et comment le reste de la chaine de mot  de  passe
       est interpretee. Les valeur suivantes sont prises en charge pour id :

              ID  | Method
              -----------------------------------------------------------
              1   | MD5
              2a  | Blowfish (pas dans la glibc officielle ; ajoutee
                  | 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  chiffre  SHA-256 et
       $6$salt$encrypted est un mot de passe SHA-512.

       << salt >> comprend jusqu'a 16 caracteres de sel apres  << $id$ >>.  La
       partie  encrypted  de  la  chaine  de mot de passe correspond au mot de
       passe chiffre. La taille de cette chaine est fixe :

       MD5     | 22 caracteres
       SHA-256 | 43 caracteres
       SHA-512 | 86 caracteres

       Les caracteres de << salt >> et << encrypted >> sont tire de l'ensemble
       [a-zA-Z0-9./].  Dans  les  implementations  MD5 et SHA, key est utilise
       entierement  (au  lieu  de  seulement  les  8  premiers   octets   dans
       l'implementation DES).

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       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'equipe francophone de traduction de Debian (2006-2009).

TRADUCTION

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

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

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                 20 juin 2010                         CRYPT(3)