hashlib和hash-以及大文件的校验
Posted bonnyxinxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashlib和hash-以及大文件的校验相关的知识,希望对你有一定的参考价值。
import hashlib
import random
#创建一个md5算法的对象
h1=hashlib.md5()
#把要加密的字符串通过update更新到h1对象中运算
h1.update("1111".encode("utf-8"))
#获取32位16进制的字符串
res=h1.hexdigest()
print(res,len(res))
#加盐
# hashlib.md5("XX")
#dong
res=random.randrange(10000,1000000)
print(res)
repdate("1111".encode())
文件校验,hashlib可以处理大的文件和hash的区别
import hashlib
h1=hashlib.md5()
h1.update("123".encode())
#16进制的字符串
res=h1.hexdigest()
print(res)
import hashlib
def check_md5(file):
with open(file,mode="rb") as fp:
hs=hashlib.md5()
hs.update(fp.read(1))
return hs.hexdigest()
res=check_md5("nn.txt")
res1=check_md5("mm.txt")
print(res)
print(res1)
#针对于大文件进行内容进行校验
h1=hashlib.md5()
h1.update("今天是".encode())
h1.update("好天气".encode())
res=h1.hexdigest()
print(res)#41f039f98beadb63f52b9b83ecd4f4b8
h2=hashlib.md5()
h2.update("今天是好天气".encode())
res=h2.hexdigest()
print(res)#41f039f98beadb63f52b9b83ecd4f4b8
def check_md5(a):
h1=hashlib.md5()
with open(a,mode="rb") as fp:
while 1:
#一次最多读5个字节
content=fp.read(5)
#如果有内容就进行计算
if content:
#进行分批更新计算
h1.update(content)
else:
break
return h1.hexdigest()
print(check_md5("mm.txt"))
print(check_md5("nn.txt"))
import os
def check_md5(file):
h2=hashlib.md5()
file_size=os.path.getsize(file)#文件大小
with open(file,mode="rb") as fp:
while file_size:
content= fp.read(5)
h2.update(content)
file_size=file_size-len(content)
return h2.hexdigest()
print(check_md5("mm.txt"))
print(check_md5("nn.txt"))
#服务器的合法性验证#用微信或者支付宝的支付接口,支付宝支付接口
import socket
import hmac
import os
def auth(conn,secret_key):
secret_key="芝麻开门"
sk=socket.socket()
sk.connect(("127.0.0.1",9000))
sk.close()
以上是关于hashlib和hash-以及大文件的校验的主要内容,如果未能解决你的问题,请参考以下文章