这二个代码一个是获取文件哈希值的,另外一个是获取爆发文件磁力链接的哈希值
复制代码代码如下://CHash.h:头文件
#pragma once#include 'sha1.h '
#定义缓冲区大小16000
class CHash {//construction public:CString sha 1 hash(CString strHashFile);};
复制代码代码如下://CHash.cpp:实现文件//# include '标准格式。h ' # include ' chash。h包括atl。h
CString CHash:sha 1 hash(CString strHashFile){ USES _ CONVERSION;FILE * fileToHash=NULL无符号长lenRead=0;无符号字符file buf[缓冲区的大小];sha1 _ CTX m _ sha1 unsigned char * tempOut=new unsigned char[256];字符串outHash字符串outHash
sha1 _ begin(m _ sha1);
fileToHash=fopen(T2A(strHashFile),' Rb ');do { lenRead=fread(fileBuf,1,SIZE_OF_BUFFER,fileToHash);如果(lenRead!=0) { sha1_hash(fileBuf,lenRead,m _ sha1);} } while(lenRead==SIZE _ OF _ BUFFER);
fclose(fileToHash);fileToHash=NULL
sha1_end(tempOut,m _ sha1);
for(int I=0;I 20I){ char tmp[3];_itoa(tempOut[i],tmp,16);if(strlen(tmp)==1){ tmp[1]=tmp[0];tmp[0]=" 0 ";tmp[2]=' \ 0 ';} tempHash=tmp
}
删除[]tempOut;
outHash=tempHash
返回outHash}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。