我链接了-lcrypt,问题是无论命令行参数如何,我都得到相同的加密。加密似乎只有在我换盐的时候才会改变。我的代码中有什么会导致这个缺陷?
#define _XOPEN_SOURCE
#include <unistd.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *enc[])
{
if (argc != 2)
{
printf("Improper command-line arguments\n");
return 1;
}
char *salt = "ZA";
printf("%s \n", crypt(*enc, salt));
}
最佳答案
在crypt(*enc, salt)
中,加密第一个参数,这是程序的名称,而不是第一个实际参数。改为尝试crypt(enc[1], salt)
。
关于c - 为什么crypt函数在这里不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21741336/