1. 程式人生 > >用python計算md5,sha1,crc32

用python計算md5,sha1,crc32

為了確保從網上下載的檔案或程式完整並且沒有被篡改,一般官網上都會給出檔案的md5或sha1。我們拿到一個軟體,第一步應當是校驗這個值與官網給的是否一致,如果不一致的話就趕緊刪掉吧。

在Mac上計算一個檔案的md5, sha1, crc32:

命令 輸出
$ md5 shark.jpg MD5 (shark.jpg) = 61aead6a48da0fb25618333590745aa7
$ shasum shark.jpg acfe8421e3ad39cf73f19cef02aa3e692e25d5a2 shark.jpg
$ crc32 shark.jpg adc64e03

python也能做這個工作,其中md5和sha1需import hashlib, crc32可以import zlib

#!/usr/bin/env python3

from hashlib import md5, sha1
from zlib import crc32
import sys

def getMd5(filename): #計算md5
    mdfive = md5()
    with open(filename, 'rb') as f:
        mdfive.update(f.read())
    return mdfive.hexdigest()

def
getSha1(filename):
#計算sha1 sha1Obj = sha1() with open(filename, 'rb') as f: sha1Obj.update(f.read()) return sha1Obj.hexdigest() def getCrc32(filename): #計算crc32 with open(filename, 'rb') as f: return crc32(f.read()) if len(sys.argv) < 2: print('You must enter the file'
) exit(1) elif len(sys.argv) > 2: print('Only one file is permitted') exit(1) filename = sys.argv[1] print('{:8} {}'.format('md5:', getMd5(filename))) print('{:8} {}'.format('sha1:', getSha1(filename))) print('{:8} {:x}'.format('crc32:', getCrc32(filename)))

$ python3 test.py shark.jpg,輸出:

md5:     61aead6a48da0fb25618333590745aa7
sha1:    acfe8421e3ad39cf73f19cef02aa3e692e25d5a2
crc32:   adc64e03

與mac上的計算一致。

相關推薦

python計算md5,sha1,crc32

為了確保從網上下載的檔案或程式完整並且沒有被篡改,一般官網上都會給出檔案的md5或sha1。我們拿到一個軟體,第一步應當是校驗這個值與官網給的是否一致,如果不一致的話就趕緊刪掉吧。 在Mac上

python計算出大檔案的md5碼,某路徑下所有檔案的md5

#coding:utf-8 #md5check.py #讀檔案,轉成md5碼 #如沒有檔案路徑,則詢問 #是檔案,返回md5碼 #是路徑把其下所有檔案返回md5碼 #參考:http://www.joelverhagen.com/blog/2011/02/md5-hash-

python計算檔案的md5

在Python中內建了md5的實現,就是md5模組,因此可以很簡單的處理比較兩個檔案是否一致的問題。如以下程式碼片斷: import os,sys,md5 f1 = open(’f:/1.txt’,’r’) f2 = open(’f:/1.txt’,’r’) print 

python計算文件行數[裝載自http://www.centoscn.com/python/2013/0806/1110.html]

緩存 scn adl 讀取 col bsp 支持 p s file 一、計算文件的行數 最簡單的辦法是把文件讀入一個大的列表中,然後統計列表的長度.如果文件的路徑是以參數的形式filepath傳遞的,那麽只用一行代碼就可以完成我們的需求了: count = le

python計算0到一個數之內的所有質數

import math #匯入包 cal_range=int(input('please enter the range of primer number:'))#輸入一個數 prime_nums=[] for i in range(cal_range+1): if i==0 or i

python計算100以內的素數

l = [] for x in range(100): #判斷如果x是素數,則列印,如果不是素數就跳過 if x <2: continue for i in range(2,x): if x % i == 0:

python 計算100~999的水仙花數的個數

# author : momo #計算100~999的水仙花數的個數 sum = 0 for i in range(100,1000): a = 0 temp = i while temp: a = a+(temp%10)**3 temp //

利用 Python 計算MD5

文章架構 目的 日常開發中,經常涉及到針對某些值進行加密的情況(隱私資訊,例如密碼等資訊)。 利用 Python 某些模組將 DataFrame(pandas)某列進行MD5加密處理很方便。 利用Python 3 與 Python 2中不同模組

python計算你最後淘寶雙11能量值還能剩多少!

惡趣味 這幾天經常收到訊息,開啟一看都是 “快快 幫我點個贊”,“我正在pk…” 不幸我昨天也入坑了,被幾個好朋友拉進去了他們的戰隊。各個熱血澎湃的。但這個活動實在是賣人情,兩個戰隊要pk點贊數,一個人一天最多給6個戰隊點贊。兩方不停的找各種好友幫你點贊,贏得一

測試python計算MD5和CRC的速度

大量資料想均勻分佈到不同的資料庫儲存,當前方法將key進行MD5或CRC計算,取最後一位分別對應到相應的儲存位置。測文字17721088行。 兩個指令碼如下: MD5部分 import hashlib import time file_list = open('d

JavaScript實現MD5,SHA1加密

    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);    d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905

MD5 SHA1 CRC32是什麼意思?主要有什麼區別?

什麼是MD5,什麼是SHA-1,如何校驗這些Hash。還有拿單個ISO檔案的MD5,SHA-1訊問是不是原版的問題,在這裡,對以上問題做一個終結解釋!  讓我們先來了解一些基本知識,瞭解hash。  Hash,一般翻譯做“雜湊”,也有直接音譯為”雜湊”的,就是把任意長度的輸

Python實現MD5&RSA簽名和驗籤

用pem檔案 pub_key.pem -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChNn3wKRtPmxaKq2dKsfMn6sO6AKxvtxZgNdh7 HBWq

Python計算大檔案crc32

直接看程式碼吧☺ #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: guoqianqian @file: mycrc32.py

python計算圓周率

from 算法 耗時 當前時間 根據 sin () result -a 一、算法:馬青公式 π/4=4arctan1/5-arctan1/239 這個公式由英國天文學教授約翰·馬青於1706年發現。他利用這個公式計算到了100位的圓周率。馬青公式每計

Python計算一個目錄下的所有文件的md5值,在Linux系統下面

linux md5 python walk hashlib 實現代碼如下:#!/usr/bin/python #*-*coding:utf8*-* import os import sys import hashlib def md5sum(data): with open(d

python實現LBP特征點計算

i+1 [0 code read cvt lena 實現 ims numpy 1 import cv2 2 import numpy as np 3 4 5 def olbp(src): 6 dst = np.zeros(src.shape,dty

python腳本來計算100以內奇數或者偶數之和

int usr continue 計算 while odin python腳本 print 奇數 #!/usr/bin/python#coding:utf-8#while#計算1+2+3+...+100的和#計算1+3+5...+99的和sum=0i=0while i<

Windows計算下載文件的SHA256 MD5 SHA1

引用 you certutil 下載文件 rtu 下載 static hash CA 引用自 http://blog.163.com/licanli2082@126/blog/static/35748686201284611330/ certutil -hashfile y

Python做科學計算》——Traits為Python新增型別定義

Python作為一種動態程式語言,它沒有變數型別,這種靈活性給快速開發帶來了很多便利,不過它也有缺點。Traits庫的一個很重要的目的就是為了解決這些缺點所帶來的問題。 對Traits作用的理解 當函式,類或者一些封裝的通用演算法中的某些部分會因為資料型別不同而