Provided by: manpages-fr-dev_3.57d1p1-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);

       #define _GNU_SOURCE         /* Consultez feature_test_macros(7) */
       #include <crypt.h>

       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.

ATTRIBUTS

   Multithreading (voir pthreads(7))
       La fonction crypt() n'est pas sûre dans un contexte multithread.

       La fonction crypt_r() est sûre dans un contexte multithread.

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.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse          http://www.kernel.org/doc/man-pages/.         Christophe         Blaess
       <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal  <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
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <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> ».

                                           21 juin 2013                                  CRYPT(3)