Provided by:
manpages-fr_1.67.0-1_all 
NOM
crypt - Crytage de données ou de mot de passe.
SYNOPSIS
#define _XOPEN_SOURCE_
#include <unistd.h>
char *crypt (const char *clé, const char *salt);
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 clé 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 la clé, 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 (3) peu recommandable pour autre chose que le
cryptage de mots de passe. Si vous comptez développer un projet
cryptographique en utilisant crypt(3), abandonnez cette idée : achetez
un bon bouquin sur la cryptographie, et utilisez une bibliothèque DES
toute faite comme il en existe tant.
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 Etats-Unis.
EXTENSION GNU
La version de cette fonction dans la GlibC 2 a quelques fonctionnalités
supplémentaires : Si salt est une chaîne 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 sort jusqu’à 34
octets, plus précisément "$1$<chaine>$", où "<chaine>" correspond aux 8
caractères maximum suivant le "$1$" dans salt, suivis de 22 octets de
l’ensemble [a–zA–Z0–9./]. La clé entière est significative ici, et non
pas ses huit premiers octets.
Pour les programmes utilisant cette fonction, il faut employer l’option
-lcrypt lors de l’édition des liens.
CONFORMITÉ
SVID, X/OPEN, BSD 4.3, POSIX 1003.1-2001.
VOIR AUSSI
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)
TRADUCTION
Christophe Blaess, 1996-2003.