C ++中的哈希函数SHA1

时间:2013-05-16 08:13:31

标签: c++ ubuntu openssl sha1

我想使用 openssl 库中的SHA1函数来散列字符串,我已经下载了库并将其安装在/usr/include中,这是我的代码:< / p>

#include <openssl/sha.h>
#include <string.h>
#include <stdio.h>

int main() {

    unsigned char digest[SHA_DIGEST_LENGTH];
    char string[] = "hello world";

    SHA1((unsigned char*) &string, strlen(string), (unsigned char*) &digest);
}

它没有任何语法错误,它识别openssl / sha.h,但是当我想在eclipse中构建项目或从终端构建时,我收到此错误:

Hash.cpp:(.text+0x4a): undefined reference to `SHA1'
collect2: error: ld returned 1 exit status

任何帮助将不胜感激! :)

1 个答案:

答案 0 :(得分:5)

您未正确链接openssl,如果您使用的是Linux,则应链接crypto

来自终端

g++ -o hash hash.cpp -lcrypto

从eclipse ,您应该打开project->Properties,转到C/C++ Build->Settings并在crypto文件夹中添加Linker->Libraries