kir*_*ika 6 c crypt linker-errors
我在c中使用了crypt函数来加密给定的字符串.我写了以下代码,
#include<stdio.h>
#include<unistd.h>
int main()
{
printf("%s\n",crypt("passwd",1000));
}
Run Code Online (Sandbox Code Playgroud)
但上面的代码引发了一个错误,"未定义引用`crypt'".上面的代码有什么问题.
提前致谢.
caf*_*caf 10
如果要使用该crypt()功能,则需要链接到提供该功能的库.添加-lcrypt到您的编译命令.
旧版本的glibc libcrypt为此目的提供了一个库,并声明了该函数<unistd.h>- 要针对此支持进行编译,您可能还需要在包含之前定义_XOPEN_SOURCE或_GNU_SOURCE在代码中定义<unistd.h>.
较新版本的glibc不提供libcrypt- 而是由一个单独的提供libxcrypt.你仍然链接-lcrypt,但函数是声明的<crypt.h>.
crypt()使用DES是非常不安全的,可能比你年长12岁.
我建议你使用严格的加密算法,比如AES.许多图书馆提供此类加密; 例如,OpenSSL(crypto.lib)是一个不错的选择.
因为很多人已经做过,所以没有回答你的实际问题