Provided by:
manpages-fr-dev_2.80.1-1_all 
NOM
crypt - Cryptage de données ou de mot de passe
SYNOPSIS
#define _XOPEN_SOURCE
#include <unistd.h>
char *crypt(const char *key, const char *salt);
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 crypté, 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.
VALEUR RENVOYÉE
Un pointeur vers le mot de passe crypté. 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É
SVr4, BSD 4.3, POSIX.1-2001
NOTES
Notes sur la glibc
La version de cette fonction présente dans la glibc2 possède quelques
fonctionnalités supplémentaires : si salt est une chaîne de caractères
commençant par les trois caractères « $1$ » suivis d’au plus huit
caractères, et éventuellement terminée par « $ », alors, au lieu
d’utiliser la machine DES, la fonction crypt() de la glibc emploie un
algorithme basé sur MD5 et produit jusqu’à 34 octets, plus précisément
« $1$<salt>$<encoded> », où « <salt> » correspond aux 8 premiers
caractères suivant le « $1$ » dans salt, et « $<encoded> » aux 22
caractères suivants. Les caractères contenus dans « <salt> » et
« <encoded> » sont générés depuis l’ensemble [a–zA–Z0–9./]. La clé key
entière est significative ici, et non pas ses huit premiers octets.
VOIR AUSSI
login(1), passwd(1), encrypt(3), getpass(3), passwd(5),
feature_test_macros(7)
COLOPHON
Cette page fait partie de la publication 2.80 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/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
francophone de traduction de Debian.
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> ».
23 décembre 2001 CRYPT(3)