C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
// CHash.h : header file
#pragma once
#include "sha1.h"
#define SIZE_OF_BUFFER 16000
class CHash
{
// Construction
public:
CString SHA1Hash(CString strHashFile);
};
// 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;
}
相关推荐
-
linux C++ 获取文件绝对路径的实例代码
提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h> int main(){ const char *file_name = "filename"; char abs_path_buff[PATH_MAX]; //获取文件路径, 填充到abs_path_buff //realpath函数返回: null表示获取失败; 否则返回指向ab
-
C++获取指定目录下的所有文件
本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector> #include <fstream> 函数实现 void getAllFiles(string path, vector<string>& files) { // 文件句柄 long h
-
C/C++获取目录下的文件列表信息
1.数据结构 复制代码 代码如下: struct dirent{ long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_name 文件名长 */ unsigned char d_type;
-
C++遍历文件夹获取文件列表
本文实例类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件,总之单拿出来应该没啥含量,调用了windows的一些API. 实例代码: #include<iostream> #include<stdlib.h> #include<windows.h> #include<fstream> #include<stdio.h> #include<vector&
-
C++获取zip文件列表方法
// ZipFile.h // #ifndef ZIPFILE_H #define ZIPFILE_H #include <string> #include <vector> #define ZIP_OK 0 #define ZIP_ERR_OPEN 1 #define ZIP_ERR_WRONG_FILE 2 #define ZIP_ERR_WRONG_HEADER 3 #define BYTE unsigned char #define ui32 unsigned int #d
-
C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
复制代码 代码如下: // CHash.h : header file #pragma once#include "sha1.h" #define SIZE_OF_BUFFER 16000 class CHash{// Constructionpublic: CString SHA1Hash(CString strHashFile);}; 复制代码 代码如下: // CHash.cpp : implementation file//#include
-
Python 实现自动获取种子磁力链接方式
因为我闲来无事,所以准备找一部电影来看看. 然后我找到了种子搜索网站,可是这类网站的弹窗广告太多,搞得我很烦.所以我就想着自己用python写一个自动获取磁力链接的脚本. 整个大概写了半个小时. 代码如下 import requests import re from bs4 import BeautifulSoup url="*种子的网站*/" header={ "Accept":"text/html,application/xhtml+xml,appli
-
Python如何获取文件路径/目录
一.获取文件路径实现 1.1 获取当前文件路径 import os current_file_path = __file__ print(f"current_file_path: {current_file_path}") __file__变量其实有个问题,当文件被是被调用文件时__file__总是文件的绝对路径:但当文件是直接被执行的文件时,__file__并不总是文件的绝对路径,而是你执行该文件时给python传的路径.比如你是python xxx/yyy.py形式执行的,那么此时
-
PHP获取文件扩展名的常用方法小结【五种方式】
本文实例总结了PHP获取文件扩展名的常用方法.分享给大家供大家参考,具体如下: 这是我应聘实习时遇到的一道笔试题: 使用五种以上方式获取一个文件的扩展名. 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg , 必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name) 下面是我参考网上资料总结出来的五种方法,都比较简单,话不多说,直接上代码: 方法1: functi
-
Python实现通过文件路径获取文件hash值的方法
本文实例讲述了Python实现通过文件路径获取文件hash值的方法.分享给大家供大家参考,具体如下: import hashlib import os,sys def CalcSha1(filepath): with open(filepath,'rb') as f: sha1obj = hashlib.sha1() sha1obj.update(f.read()) hash = sha1obj.hexdigest() print(hash) return hash def CalcMD5(fi
-
Python获取文件ssdeep值的方法
本文实例讲述了Python获取文件ssdeep值的方法,分享给大家供大家参考.具体方法如下: 首先,得到ssdeep值,需要先import ssdeep 在ubuntu上安装pyssdeep时 一直出错 后来发现apt-cache search "ssdeep"时把几个全apt-get install 上,但问题依旧. 后来下载到pyssdeep的源文件 ,tar zxvf pyssdeep.tar.zip 然后 apt-get install python-dev 然后 pytho
-
PHP获取文件的MD5值并判断是否被修改的例子
由于需要判断上传的文件是否被修改过,需要记录上传文件的md5值,这里记录一下获取文件md5值的方法. 复制代码 代码如下: if(isset($_FILES['multimedia']) && $_FILES['multimedia']['error']==0) { $file_name = $_FILES['multimedia']['name']; $size = getimagesize($_FILES['multimedia']['tmp_name']); $type
-
python计算Content-MD5并获取文件的Content-MD5值方式
1.首先计算MD5加密的二进制数组(128位),然后再对这个二进制数组进行base64编码(而不是对32位字符串编码). 例如,用Python计算0123456789的Content-MD5,主要代码如下: import base64, hashlib hash = hashlib.md5() hash.update("0123456789") base64.b64encode(hash.digest()) 这样就生成了 'eB5eJF1ptWaXm4bijSPyxw==' 的Cont
-
C#获取文件MD5值的实现示例
前言 MD5是一种常见的加密方式,相对比较稳定,同时也是校验文件的一种方式,本文给大家介绍了利用C#获取文件MD5值的方法,直接使用即可,可用于对比文件是否相同.下面话不多说,来看示例代码吧 示例代码如下: /// <summary> /// 获取文件MD5值 /// </summary> /// <param name="fileName">文件绝对路径</param> /// <returns>MD5值</retur
-
详解JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过MessageDigest类进行MD5加密,第三步转换成16进制的MD5码值.几种方法的不同点主要在第一步和第三步上.具体可以看下面的例子: 方法一. private final static String[] strHex = { "0", "1", "2"
随机推荐
- Python实现配置文件备份的方法
- JS获取html对象的几种方式介绍
- JavaScript常用全局属性与方法记录积累
- Http请求长时间等待无结果返回解决办法
- BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
- Http 1.1 Etag 与 Last-Modified提高php效率
- ASPWebPack 代码 提供下载
- jsp中EL表达式获取数据
- KB967723补丁造成的MYSQL在Win2003上频繁连接不上的问题的解决方法
- Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
- jquery简单实现带渐显效果的选项卡菜单代码
- ES6学习教程之Map的常用方法总结
- 五步把DVD转成RMVB压缩影片
- 利用反射获得类的public static/const成员的值实例
- C++/java 继承类的多态详解及实例代码
- Android开发自学笔记(三):APP布局上
- python爬虫爬取快手视频多线程下载功能
- Java实体类中Set按照对象的某个字段对set排序
- Spring boot+beetl+i18n国际化处理的方法
- C#并发实战记录之Parallel.ForEach使用