2014-08-28 2 views
-2

저는 리눅스를 사용하고 있습니다. 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

답변

1

STL에 없습니다. 나는 당신의 예 here에서 추측

#include <openssl/sha.h> 

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

: 당신은 당신의 선택 (예를 들어,은 OpenSSL)의 라이브러리를 이용할 수 있습니다. 이 경우 사이트에서 파일을 복사/붙여 넣기하고 프로젝트와 함께 파일을 빌드 할 수 있습니다.

+0

나는 초심자 일 뿐이므로 나는 그것에 대해 다시 한 번 묻고있다. openssl/sha.h : 그런 파일이 없습니다. 내가 뭘해야 할까? – someWhereElse

+0

리눅스에서는 openssl의 개발자 패키지를 설치해야합니다. 우분투에서는'sudo apt-get libssl-dev'을 설치합니다. 이것은'/ usr/include'에 설치되고 컴파일러에 의해 발견 될 것입니다. ssl 라이브러리에 링크하는 것을 잊지 마십시오. –

+0

그건 당신이 사용하는 빌드 환경에 대한 질문입니다. 따라서 주제에서 벗어납니다. –

관련 문제