2013-01-09

MD5 使用注意事項

在 Go  裡使用 md5 做校驗不難,如範例所寫:


若要在迴圈裡做上面的事情,可能會有這樣的寫法:


跑出來的結果是:


f1() 和 f2() 會有不同的結果是因為 io.WriteStringmd5.go 實作細節, WriteString 會找 Writer 的實作,而在 md5.go 的實作如下:


看見 += 就可以猜的出來是附加的方式,所以每次非得使用新的 instance,目前還沒發現能清除 digest 內容的方法。