2013-01-09 171 views
0

我在Visual Studio中使用OpenSSL以用於OpenSSL的不同用途。OpenSSL SHA1校驗和

我剛纔讀的二進制文件的緩衝區和應用SHA1它

EVP_DigestUpdate(hCtx, fin_buf, fin_size); 
int rez=EVP_DigestFinal(hCtx, pTmpBuffer, &nDigestSz); 
pDigest = new unsigned char[ nDigestSz ]; 
memcpy(pDigest, pTmpBuffer, nDigestSz * sizeof(unsigned char)); 

fin_buf保存文件的字節。

FILE *fhash = fopen("hash.sha1", "wb"); 
fwrite(pDigest, 1, nDigestSz, fhash); 
fclose(fhash); 

這裏我把緩衝區寫入.sha1文件。

我需要檢查文件的散列。 任何人都可以給我看一個在OpenSSL C++中檢查哈希的例子嗎?

回答

0

散列的主要思想是,當您通過相同的輸入計算它時,您將獲得相同的散列值。如果您讀取原始文件並執行您的第一個代碼部分,摘要的值應該等於.sha1文件的內容。

+0

我認爲這是唯一的方法。這是我的大學的一個項目,我們必須儘可能多地使用OpenSSL。我假設有一個預定義的函數可以做到這一點。感謝您的輸入! –

+0

我可能是那個openssl在一個文件上有一個幫助函數sha1,那你的意思是?這應該在手冊中提及。 – dmaij