我在Visual Studio 2010中编辑了一些示例代码,以便使用DES进行加密和解密。出于某种原因,当我编译代码时,我不断得到这两个引用des_encrypt1()函数和des_set_key_checked()函数的LNK2019错误。从我的代码中可以看出,我确保包含des.h文件,该文件列出了这两个函数的定义。我是C的新手,所以我不确定这是不是很简单,我忽略了任何帮助将不胜感激。我不确定如何在这里正确附加代码,如果格式看起来很奇怪但是下面的粗体包括#include des.h。
#include <des.h>
#define ENC 1
#define DEC 0
//extern des_encrypt1(DES_LONG *data,DES_key_schedule *ks, int enc);
//void des_set_key_checked(const_des_block *key, des_key_schedule *schedule)
int main()
{
int k;
long in[2];
static unsigned char cbc_key[8] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
des_key_schedule key;
//struct timeval start, end;
//double t1, t2, t3, t4;
if ((k = des_set_key_checked(&cbc_key,key)) != 0)
printf("\nkey error\n");
in[0] = 3212314;
in[1] = 1231233;
printf("DES Clear Text: %ld%ld\n",in[0],in[1]);
//gettimeofday(&start, NULL);
//t1=start.tv_sec+(start.tv_usec/1000000.0);
des_encrypt1(in,key,ENC);
//gettimeofday(&end, NULL);
//t2=end.tv_sec+(end.tv_usec/1000000.0);
//printf("Time for Encryption\n", t2-t1);
printf("DES Encryption: %u%u\n",in[0],in[1]);
//gettimeofday(&start, NULL);
//t3=start.tv_sec+(start.tv_usec/1000000.0);
des_encrypt1(in,key,DEC);
//gettimeofday(&end, NULL);
//t4=end.tv_sec+(end.tv_usec/1000000.0);
//printf("Time for Decryption\n", t4-t3);
}
答案 0 :(得分:0)
如果您要将代码编译为C ++,但是为C编写了标头,则需要按如下方式包含它:
extern "C" {
#include "des.h"
}
答案 1 :(得分:0)
你需要在openssl /
中包含des.h#include <openssl/des.h>