crypt   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 23 décembre 2001
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
crypt - Crytage de données ou de mot de passe  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#define _XOPEN_SOURCE_
#include <unistd.h>

char *crypt (const char *clé, const char *salt);  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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() 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 comme il en existe tant.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Un pointeur vers le mot de passe crypté. En cas d'erreur, NULL est renvoyé.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
ENOSYS
La fonction crypt() est absente, probablement en raison des restrictions d'exportation des États-Unis.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
SVr4, BSD 4.3, POSIX.1-2001.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
 



Notes glibc   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 sort jusqu'à 34 octets, plus précisément « $1$<salt>$<encoded> », où « <salt> » correspond aux 8 caractères maximum suivant le « $1$ » dans salt, et « <encoded> » est une suite de 22 caractères supplémentaires. Les caractères de « <salt> » et de « <encoded> » font partie 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.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
login(1), passwd(1), encrypt(3), getpass(3), passwd(5), feature_test_macros(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 23 octobre 1996 et révisée le 27 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 crypt ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
Notes glibc
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
ENOSYSERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:57, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional