Golang 計算乙個檔案的MD5值

2021-08-19 18:42:19 字數 788 閱讀 1128

說明

在實際的開發過程中,總需要對檔案進行md5加密的需求,在開發過程中,我就遇到了將表單檔案md5後再儲存本地的需求。

解決

md5的所需要的包在」crypto/md5」包中,需要先例項化乙個md5物件,然後在此基礎上呼叫sum方法即可

md5 := md5.new()

io.copy(md5,file)

md5str := hex.encodetostring(md5.sum(nil))

上面的**實現了計算了檔案md5,其中file是multipart.file型別的,也可以是其他的已開啟的其他檔案型別。

當然也可以不使用io.copy,而是直接使用sum函式來計算:

md5 := md5.new()

md5str := hex.encodetostring(md5.sum(file))

這樣是直接呼叫了sum函式來計算檔案的值可能要比io.copy稍微慢一些。

字串的md5

有時候需要將已知的一段字串加密,其實和檔案加密大概是類似的,只需要呼叫write方法將字串寫入hash中:

md5 := md5.new()

md5.write(byte("hello,world!"))

md5str := hex.encodetostring(md5.sum(nil))

計算檔案的md5

本地配置檔案,或要做熱更的檔案,通過計算檔案md5與儲存在伺服器端的值做對比,如果不一致則說明本地檔案過舊,或者被非法修改過。算檔案md5方法為 讀取檔案為二進位製流,算出md5值轉為字串。using system using system.collections.generic using sys...

golang寫的乙個分頁控制項。

直接放 吧,基本不用改,直接用了。package components import math date 2019 04 01 description 分頁控制項 pages 分頁控制項 type pages struct startrecord 設定分頁查詢時起始位置 func p pages s...

用golang寫乙個proxy

我複雜的網路環境中,proxy是個很有用的工具,我們可以通過proxy 幫我們完成網路流量的 這個proxy得先能接收請求,所以這裡先啟動乙個tcp的監聽,獲取請求 func s server start glog.infof proxy listen in s,waiting for connec...