熱線電話:13121318867

登錄
首頁精彩閱讀Python實現通過文件路徑獲取文件hash值的方法
Python實現通過文件路徑獲取文件hash值的方法
2017-12-07
收藏

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(filepath):
  with open(filepath,'rb') as f:
    md5obj = hashlib.md5()
    md5obj.update(f.read())
    hash = md5obj.hexdigest()
    print(hash)
    return hash
if __name__ == "__main__":
  if len(sys.argv)==2 :
    hashfile = sys.argv[1]
    if not os.path.exists(hashfile):
      hashfile = os.path.join(os.path.dirname(__file__),hashfile)
      if not os.path.exists(hashfile):
        print("cannot found file")
      else
      CalcMD5(hashfile)
  else:
    CalcMD5(hashfile)
    #raw_input("pause")
else:
  print("no filename")
使用Python進行文件Hash計算有兩點必須要注意:
1、文件打開方式一定要是二進制方式,既打開文件時使用b模式,否則Hash計算是基于文本的那將得到錯誤的文件Hash(網上看到有人說遇到Python的Hash計算錯誤在大多是由于這個原因造成的)。
2、對于MD5如果需要16位(bytes)的值那么調用對象的digest()而hexdigest()默認是32位(bytes),同理Sha1的digest()和hexdigest()分別產生20位(bytes)和40位(bytes)的hash值

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢