gpt4 book ai didi

c - 我收到错误 undefined reference to `PKCS5_PBKDF2_HMAC_SHA1' 。我如何解决它?

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:50 24 4
gpt4 key购买 nike

当我尝试编译以下代码时出现此错误。我安装了 openssl 库。我不懂编程。错误是:“ccS3fmrV.o:wa_pbkdf2.c:(.text+0x1e3): 未定义对‘PKCS5_PBKDF2_HMAC_SHA1’的引用collect2.exe:错误:ld 返回了 1 个退出状态

有人可以帮忙吗?谢谢。

#include <stdio.h>
#include <string.h>
#include <openssl/x509.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>

int main(int argc, char *argv[])
{
unsigned char pass[1024]; // passphrase read from stdin
unsigned char salt[1024]; // salt
int salt_len; // salt length
int ic; // iteration
unsigned char result[1024]; // result
FILE *fp_salt;

if ( argc != 3 ) {
fprintf(stderr, "usage: %s salt_file iteration < passwd_file > binary_key_file \n", argv[0]);
exit(1);
}

ic = atoi(argv[2]);

fp_salt = fopen(argv[1], "r");
if(!fp_salt) {
fprintf(stderr, "error opening salt file: %s\n", argv[1]);
exit(2);
}

salt_len=0;
int ch;
while((ch = fgetc(fp_salt)) != EOF) {
salt[salt_len++] = (unsigned char)ch;
}

fclose(fp_salt);

fgets(pass, 1024, stdin);
if ( pass[strlen(pass)-1] == '\n' )
pass[strlen(pass)-1] = '\0';

PKCS5_PBKDF2_HMAC_SHA1(pass, strlen(pass), salt, salt_len, ic, 16, result);

fwrite(result, 1, 16, stdout);

return(0);
}

最佳答案

I get the error undefined reference to `PKCS5_PBKDF2_HMAC_SHA1'. How do I fix it?

PKCS5_PBKDF2_HMAC_SHA1 已添加到 1.0.0 (IIRC) 中。所以请确保您使用的是 OpenSSL 1.0.0 或更高版本。在 PKCS5_PBKDF2_HMAC_SHA1 上有一个 OpenSSL 手册页, 但它的历史是空的。

如果您使用的是 OpenSSL 1.0.1,请确保为链接器包含 libcrypto。您的编译/链接命令应该类似于:

gcc wa_pbkdf2.c -o wa_pbkdf2.exe -lcrypto

关于c - 我收到错误 undefined reference to `PKCS5_PBKDF2_HMAC_SHA1' 。我如何解决它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com