我链接了-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/

10-11 19:42