1. 程式人生 > >[Golang]計算一個檔案的MD5值

[Golang]計算一個檔案的MD5值

說明

在實際的開發過程中,總需要對檔案進行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))