2014-08-28 35 views
-2

我正在使用linux,我只需要sha-256的現有標頭;我已經嘗試了很多代碼塊,但都沒有工作。sha256有沒有頭文件?

#include <iostream> 
#include "sha256.h" 

using namespace std; 

int main(int argc, char *argv[]) 
{ 
    string input = "abc"; 
    string output1 = sha256(input); 

    cout << "sha256('"<< input << "'):" << output1 << endl; 
    return 0; 
} 

軟墊哈希輸入:

0x61626380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018

我如何可以添加sha256.h

+0

@Niall這不是我的母語,所以我犯了一些錯誤,謝謝你解決它。 – someWhereElse 2014-08-29 08:28:14

回答

1

不在STL中。你可以利用你的選擇(例如,OpenSSL的)庫:

#include <openssl/sha.h> 

void foo() 
{ 
    SHA256_CTX sha256; 
    SHA256_Init(&sha256); 
    SHA256_Update(&sha256, str.c_str(), str.size()); 
    SHA256_Final(hash, &sha256); 
} 

我猜你的例子是here。如果是這種情況,您可以簡單地複製/粘貼網站上的文件並將其與您的項目一起構建。

+0

我只是初學者,所以我對此再次抱怨。 openssl/sha.h:沒有這樣的文件它說。我想要做什麼? – someWhereElse 2014-08-28 08:59:02

+0

在Linux上,您必須安裝openssl的開發包。在Ubuntu上,它是'sudo apt-get install libssl-dev'。這將安裝到'/ usr/include'中,然後可以被編譯器找到。不要忘記鏈接到ssl庫。 – 2014-08-28 09:05:49

+0

這是您使用的構建環境的問題......因此不屬於主題。 – 2014-08-28 09:16:03