python对string和文件hash
1 import subprocess, hashlib 2 3 def fileSha1(filepath): 4 with open(filepath,'rb') as f: 5 sha1obj = hashlib.sha1() 6 sha1obj.update(f.read()) 7 hash = sha1obj.hexdigest() 8 return hash 9 10 def strSha1(strval): 11 sha = hashlib.sha1(strval.encode(encoding='utf-8')) 12 hash = sha.hexdigest() 13 return hash
使用Python进行文件Hash计算有两点必须要注意:
1、文件打开方式一定要是二进制方式,即打开文件时使用b模式,否则Hash计算是基于文本的那将得到错误的文件Hash。
2、对于MD5如果需要16位(bytes)的值那么调用对象的digest()而hexdigest()默认是32位(bytes),同理Sha1的digest()和hexdigest()分别产生20位(bytes)和40位(bytes)的hash值

浙公网安备 33010602011771号