Provided by: manpages-fr-dev_3.65d1p1-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 [a-zA-Z0-9./]. 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

       EINVAL Le format de salt est incorrect.

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

       EPERM  /proc/sys/crypto/fips_enabled est différent de 0, et un  chiffrement  faible  comme
              DES est sélectionné.

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  [a-zA-Z0-9./].  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.65 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> ».

                                         26 février 2014                                 CRYPT(3)