Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
CRYPT
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- ERREURS
- EXTENSION GNU
- CONFORMITÉ À
- VOIR AUSSI
- TRADUCTION
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);
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(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.
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.
EXTENSION GNU
La version de cette fonction dans la glibc2 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 produit jusqu'à
34 octets, plus précisément « $1$<chaîne>$ », où
«<string> » 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É À
SVr4, BSD 4.3, POSIX.1-2001
VOIR AUSSI
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)
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.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|