谁能解释为什么这些方法会产生两个不同的输出值?从 md5 文档中不清楚。
import (
"crypto/md5"
"encoding/hex"
"fmt"
)
func GetMD5HashWithWrite(text string) string {
hasher := md5.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func GetMD5HashWithSum(text string) string {
hasher := md5.New()
return hex.EncodeToString(hasher.Sum([]byte(text)))
}
Run Code Online (Sandbox Code Playgroud)
我把 hasher.Sum() 和 md5.Sum() 混在一起了。这些确实产生了等效的输出。
func GetMD5HashWithWrite(text string) []byte {
hasher := md5.New()
hasher.Write([]byte(text))
return hasher.Sum(nil)
}
func GetMD5HashWithSum(text string) [16]byte {
return md5.Sum([]byte(text))
}
Run Code Online (Sandbox Code Playgroud)
游乐场:https : //play.golang.org/p/fpE5ztnh5U
| 归档时间: |
|
| 查看次数: |
2936 次 |
| 最近记录: |