python3求取大文件sha1值和md5
小文件
import hashlib
import base64
filePath = "test.txt"
with open(filePath, "rb") as f:
fileData = f.read()
sha1 = hashlib.sha1()
sha1.update(fileData)
fileHash = base64.b64encode(sha1.digest()).decode('utf-8 ')
print(fileHash)
print(base64.b64decode(fileHash).hex())
在linux中,可以使用指令sha1sum test.txt验证
大文件
import hashlib
import base64
filePath = "test.txt"
sha1 = hashlib.sha1()
with open(filePath, "rb") as f:
while True:
fileData = f.read(2048)
if not fileData:
break
sha1.update(fileData)
fileHash = base64.b64encode(sha1.digest()).decode('utf-8 ')
print(fileHash)
print(base64.b64decode(fileHash).hex())
同理,求取MD5只需要把 sha1 = hashlib.sha1() 替换为 md5 = hashlib.md5(), 相应的sha1 也替换为 md5 即可
此外,获取十六进制编码也可以直接用 sha1.hexdigest() 和 md5.hexdigest()
参考: python 计算大文件的md5、sha1值
python3求取大文件sha1值和md5的更多相关文章
- python tcp黏包和struct模块解决方法,大文件传输方法及MD5校验
一.TCP协议 粘包现象 和解决方案 黏包现象让我们基于tcp先制作一个远程执行命令的程序(命令ls -l ; lllllll ; pwd)执行远程命令的模块 需要用到模块subprocess sub ...
- <hdu - 1600 - 1601> Leftmost Digit && Rightmost Digit 数学方法求取大位数单位数字
1060 - Leftmost Digit 1601 - Rightmost Digit 1060题意很简单,求n的n次方的值的最高位数,我们首先设一个数为a,则可以建立一个等式为n^n = a * ...
- 获取文件sha1 值
单元 IdHashSHA申明 function GetFile_SHA1(const iFileName: String): String; //Checksum hash value for fir ...
- sql取大的一个值
select b.*, a.recid, a.keyno from product b, (select pcode, ...
- [转]android 如何获取第三方app的sha1值
对于android 应用的sha1值和md5值的获取,如果是我们自己的应用,不论是获取测试的和正式的都是比较方便的.但是如何去获取别人开发的app的sha1和md5呢,并且我们只有apk有没有相关的文 ...
- apk获取sha1值的方法
安卓应用都使用一个签名证书(.keystore或.jks文件)签名,签名证书可以由jdk生成.证书生成后,证书就有其sha1值. 使用此证书打包后的安卓应用,也有其一样的sha1值.md5值和sha2 ...
- POJ 2104 K-th Number ( 求取区间 K 大值 || 主席树 || 离线线段树)
题意 : 给出一个含有 N 个数的序列,然后有 M 次问询,每次问询包含 ( L, R, K ) 要求你给出 L 到 R 这个区间的第 K 大是几 分析 : 求取区间 K 大值是个经典的问题,可以使用 ...
- Java计算文件MD5值(支持大文件)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.securit ...
- 如何查看Android的Keystore文件的SHA1值
像使用百度地图api时候,一般需要获取keystore的SHA1值,这里就手把手教大家如何查看Android的keystore文件中的SHA1值. 第一步: 打开cmd,切换到keystore所在的文 ...
- java海量大文件数据处理方式
1. 给定a.b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a.b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4 ...
随机推荐
- shell 去掉逗号_shell替换和去掉换行符
用shell处理文件的时候我们常常需要去掉或者加上换行符,name问题就来了怎么才能快速的替换呢? 我们有这样一个文件[root@hxy working]# cat 1 GD200A16C013493 ...
- js图片懒加载,在不做分页的情况下的解决方案
Intersection Observer API 1.注意点 一般都是后端返回数据, 用 this.$nextTick(() => { this.handleScroll(); }); 确保d ...
- NETCore中实现一个轻量无负担的极简任务调度ScheduleTask
至于任务调度这个基础功能,重要性不言而喻,大多数业务系统都会用到,世面上有很多成熟的三方库比如Quartz,Hangfire,Coravel 这里我们不讨论三方的库如何使用 而是从0开始自己制作一个简 ...
- 腾讯云服务器Ubuntu-配置mysql,nginx,nodejs
趁着618腾讯云服务器的促销活动,笔者买了最低配置的云服务器,用作学习. 接上一篇文章的内容,系统方面选择了Ubuntu,版本是20.04 LTS. 选择Ubuntu的原因,主要是因为Ubuntu一 ...
- git cherry-pick合并其它分支的某次提交(commits)到当前分支
git cherry-pick 可以选择某一个分支中的一个或几个commit(s)来进行操作. 例如,假设我们有个稳定版本的分支,叫v2.0.0,另外还有个开发版本的分支v3.0.0,我们不能直接把两 ...
- 微信公众号,微信小程序,百度小程序免费发放了
小程序免费领取了,是真的免费哦 每人限领一套,100%开源,无后门 免费领取方式直接看tpframe官方网站
- linux常用关机/重启命令:shutdown,init 0,init 6
目录 一.使用shutdown关机,重启,定时关机 二.使用init关机/重启 一.使用shutdown关机,重启,定时关机 1.设置计算机10分钟之后关机 [root@node5 ~]# shutd ...
- ubuntu18.04最小化安装
ubuntu 18.04虚拟机安装 镜像下载地址: https://releases.ubuntu.com/18.04/ubuntu-18.04.6-live-server-amd64.iso 创建虚 ...
- opensuse tw快速部署
使用GUI快速配置opensusetw 先看官方配置指南 换源 清华源之oss+non-oss links 清华源之packman links sudo zypper ar -cfg 'https:/ ...
- react类组件
使用ES6语法的class创建的组件(有状态组件) 类名称必须要大写字母开头 类组件要继承React.Component父类,从而可以使用父类中提供的方法或者属性 类组件必须提供 render 方法, ...