The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit (16-byte) hash value, used to ensure the integrity and consistency of information transmission.
This article will use the crypto/md5 package from the Golang standard library to implement MD5 hash calculation for strings;
Import necessary packages:
import (
"crypto/md5"
"encoding/hex"
)
crypto/md5 is the MD5 package in the standard library; while encoding/hex is an encoding utility package that converts byte slices to strings.
Implementation:
func MD5(v string)string{
d := []byte(v)
m := md5.New()
m.Write(d)
return hex.EncodeToString(m.Sum(nil))
}
md5.New() returns a hash.Hash object; the hash.Hash object defines a Sum interface with the following prototype:
func Sum(data []byte) [Size]byte
Sum() performs checksum calculation on the content stored internally in the hash.Hash object, then appends it to data to form a new byte slice, so data is typically set to nil.
The Write interface of the hash.Hash object only accepts byte slice data type;
Complete code:
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
)
func MD5(v string)string{
d := []byte(v)
m := md5.New()
m.Write(d)
return hex.EncodeToString(m.Sum(nil))
}
func main(){
fmt.Println(MD5("123456"))
}