функция склепа и ошибка связи “неопределенная ссылка на ‘crypt'”

Я использовал функцию crypt в c для шифрования данной строки. Я написал следующий код,

#include #include int main() { printf("%s\n",crypt("passwd",1000)); } 

Но приведенный выше код породил ошибку, «неопределенная ссылка на« crypt ». В чем проблема в приведенном выше коде.

Заранее спасибо.

    Если вы хотите использовать функцию crypt() , вам необходимо установить ссылку на библиотеку crypt. Добавьте -lcrypt в команду компиляции. Вам также может понадобиться определить _XOPEN_SOURCE или _GNU_SOURCE .

     $ man 3 crypt CRYPT(3) Linux Programmer's Manual CRYPT(3) NAME crypt, crypt_r - password and data encryption SYNOPSIS #define _XOPEN_SOURCE /* See feature_test_macros(7) */ #include  char *crypt(const char *key, const char *salt); #define _GNU_SOURCE /* See feature_test_macros(7) */ #include  char *crypt_r(const char *key, const char *salt, struct crypt_data *data); Link with -lcrypt. ... 

    crypt() использует DES, который крайне небезопасен и, вероятно, старше вас на 12 лет старше вас.

    Я предлагаю вам использовать серьезный алгоритм шифрования, такой как AES. Многие библиотеки предлагают такое шифрование; Например, OpenSSL (crypto.lib) является хорошим выбором.

    Не отвечая на ваш реальный вопрос, так как многие люди уже

    Вам нужно включить crypt.h, если вы хотите использовать crypt() . Ниже других ваших двух добавлений добавьте:

     #include  

    Вам необходимо поставить следующую строку:

     #define _XOPEN_SOURCE 

    Вы должны #define __XOPEN_SOURCE прежде чем #include файлы заголовков.

    Функция crypt является нестандартной, но предоставляется как расширение библиотекой GNU C в Linux. Он определен в