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;
}
相关推荐
-
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++遍历文件夹获取文件列表
本文实例类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件,总之单拿出来应该没啥含量,调用了windows的一些API. 实例代码: #include<iostream> #include<stdlib.h> #include<windows.h> #include<fstream> #include<stdio.h> #include<vector&
-
C++获取指定目录下的所有文件
本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector> #include <fstream> 函数实现 void getAllFiles(string path, vector<string>& files) { // 文件句柄 long h
-
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.数据结构 复制代码 代码如下: 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++获取文件哈希值(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"
随机推荐
- 使用IronPython把Python脚本集成到.NET程序中的教程
- Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。
- MySQL中的max()函数使用教程
- PHP实现批量检测网站是否能够正常打开的方法
- Vue.js事件处理器与表单控件绑定详解
- JavaScript制作淘宝星级评分效果的思路
- PHP取二进制文件头快速判断文件类型的实现代码
- NodeJS学习笔记之(Url,QueryString,Path)模块
- 2003操作系统十例最新配置技巧
- 详解Java的环境变量和Tomcat服务器配置
- c++ 类中const成员变量的赋值方法
- php根据生日计算年龄的方法
- 用PHPdig打造属于你自己的Google[图文教程]
- 安卓模拟器genymotion的安装与使用图文教程
- springboot中使用redis由浅入深解析
- linux中Centos7的LVM磁盘扩容问题
- 深入学习Java 热部署的知识
- 深入了解Hybrid App技术的相关知识
- node 标准输入流和输出流代码实例
- 解决pandas无法在pycharm中使用plot()方法显示图像的问题