通过使用openssl的sha 512算法,我目前能够在3-3.3秒(我的CPU是i7-5820k)之间计算2GB文件的哈希值-包括打开,写入到,然后关闭文件(打开输入并将哈希值写入文本文件)。
我想知道是否有任何已知的方法来加快此过程,或者我的硬盘是否完全出错,从而造成瓶颈(希捷BarraCuda Green 2TB 5900RPM SATA 6Gb / s 64MB缓存)。
FILE *ftest=fopen(hashInBuf, "rb");
FILE *ftest2=fopen(hashOutBuf, "wt");
//HASH FUNCTION
SHA512_Init (&mdContext);
while ((bytes = fread (data, 1, 1024, ftest)) != 0)
SHA512_Update (&mdContext, data, bytes);
SHA512_Final (c,&mdContext);
for(i = 0; i < SHA512_DIGEST_LENGTH; i++){
fprintf(ftest2, "%02x", c[i]);
printf("%02x", c[i]);
(我当前用于计算sha 512的代码)