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++获取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.数据结构 复制代码 代码如下: 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"
随机推荐
- JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
- javascript 对象定义方法 简单易学
- 每天一篇javascript学习小结(Date对象)
- 利用vue实现模态框组件
- sxs.exe 病毒专杀工具 最近更新
- 批处理维护工具菜单实现
- Swift算法实现字符串转数字的方法示例
- C#的FileInfo类实现文件操作实例
- GridView中日期不显示时分秒的完美解决方法
- Python多进程同步简单实现代码
- Shell脚本批量清除Nginx缓存
- IE7 beta2的CSS兼容性
- SQLServer 2000 数据库同步详细步骤[两台服务器]
- JavaScript子窗口调用父窗口变量和函数的方法
- windows 2003中IIS6的安全配置
- Convert WebP to PNG using java
- C语言金币阵列问题解决方法
- JavaWeb Spring开发入门深入学习
- C++将CBitmap类中的图像保存到文件的方法
- Mygui中文换行问题解决方案