la fonction crypt et lien d'erreur “undefined reference to 'crypte'”
J'ai utilisé la fonction crypt () en c pour chiffrer une chaîne donnée.
J'ai écrit le code suivant,
#include<stdio.h>
#include<unistd.h>
int main()
{
printf("%s\n",crypt("passwd",1000));
}
Mais le code ci-dessus jeta un message d'erreur"undefined reference to `crypte'".
Quel est le problème dans le code ci-dessus.
Merci d'avance.
N'a pas
non, sinon il serait appelé
crypt
ne hachage au lieu de cryptage?non, sinon il serait appelé
hash
ne serait-il pas?
OriginalL'auteur kiruthika | 2010-04-02
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez utiliser le
crypt()
fonction, vous devez le lier à la bibliothèque qui l'alimente. Ajouter-lcrypt
de votre commande compile.Les anciennes versions de la glibc fourni un
libcrypt
de la bibliothèque à cette fin, et déclaré la fonction dans<unistd.h>
- compiler à l'encontre de ce support, vous pouvez aussi avoir besoin de définir les_XOPEN_SOURCE
ou_GNU_SOURCE
dans votre code avant de<unistd.h>
.Nouvelles versions de la glibc ne fournit pas
libcrypt
- il est plutôt fourni par une autrelibxcrypt
. Vous avez encore le lien avec-lcrypt
, mais la fonction est plutôt déclaré dans<crypt.h>
.OriginalL'auteur caf
crypt()
utilise DES qui est extrêmement précaire etprobablement plus âgé que vous12 ans de plus que vous.Je vous suggère d'utiliser un grave algorithme de chiffrement, comme AES. De nombreuses bibliothèques offrent un tel chiffrement; OpenSSL (crypto.lib) est un bon choix pour l'exemple.
ne Pas répondre à votre question car beaucoup de gens l'ont déjà fait
OriginalL'auteur Thomas Bonini
Vous devez inclure la crypte.h si vous souhaitez utiliser
crypt()
. Ci-dessous vos deux autres comprend, ajouter:OriginalL'auteur Chad Birch
Vous avez besoin de mettre la ligne suivante avant votre comprend:
OriginalL'auteur a'r
Vous avez à
#define __XOPEN_SOURCE
avant de vous#include
les fichiers d'en-tête.OriginalL'auteur Qwerty
La
crypt
fonction est non-standard, mais est fourni comme une extension par la bibliothèque C de GNU Linux. Il est défini dans<crypt.h>
OriginalL'auteur GManNickG