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