MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

crypto/md5

导入必要库:

import (
	"crypto/md5"
	"encoding/hex"
)
crypto/md5encoding/hex

实现:

func MD5(v string)string{
	d := []byte(v)
	m := md5.New()
	m.Write(d)
	return hex.EncodeToString(m.Sum(nil))
}
md5.New()
func Sum(data []byte) [Size]byte

Sum()对hash.Hash对象内部存储的内容进行校验计算,然后将其追加到data的后面形成一个新的byte切片,所以一般需要将data设为nil。

hash.Hash对象的Write接口只接受 byte切片数据类型;

完整代码如下:

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"))
}