2013-01-09 132 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