源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值

  • 时间:2022-10-09 15:47 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
[u]复制代码[/u] 代码如下:
// CHash.h : header file #pragma once #include "sha1.h" #define        SIZE_OF_BUFFER         16000 class CHash { // Construction public:     CString SHA1Hash(CString strHashFile); };
[u]复制代码[/u] 代码如下:
// CHash.cpp : implementation file // #include "stdafx.h" #include "CHash.h" #include <atlconv.h> CString CHash::SHA1Hash(CString strHashFile) {     USES_CONVERSION;     FILE *fileToHash = NULL;     unsigned long lenRead = 0;     unsigned char fileBuf[SIZE_OF_BUFFER];     sha1_ctx m_sha1;     unsigned char* tempOut = new unsigned char[256];     CString    tempHash;     CString outHash;     sha1_begin(&m_sha1);     fileToHash = fopen(T2A(strHashFile), "rb");     do     {         lenRead = fread(fileBuf, 1, SIZE_OF_BUFFER, fileToHash);         if(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 < 20 ; i++)     {         char tmp[3];         _itoa(tempOut[i], tmp, 16);         if (strlen(tmp) == 1)         {             tmp[1] = tmp[0];             tmp[0] = '0';             tmp[2] = '\0';         }         tempHash += tmp;        }     delete[] tempOut;     outHash = tempHash;     return outHash; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部