package util

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

// MD5Hash 函数接收一个字符串作为输入,返回该字符串的MD5哈希值(十六进制格式)
func MD5Hash(text string) string {
	// 创建一个新的hash.Hash接口来写入数据
	hasher := md5.New()

	// 写入需要哈希的数据
	io.WriteString(hasher, text)

	// 计算哈希值的Sum(字节切片)
	sum := hasher.Sum(nil)

	// 将字节切片转换为十六进制字符串
	return hex.EncodeToString(sum)
}

// MD5Hash 函数接收一个字符串作为输入,返回该字符串的MD5哈希值(十六进制格式)
func MD5HashShort(text string) string {
	// 创建一个新的hash.Hash接口来写入数据
	hasher := md5.New()

	// 写入需要哈希的数据
	io.WriteString(hasher, text)

	// 计算哈希值的Sum(字节切片)
	sum := hasher.Sum(nil)

	// 将字节切片转换为十六进制字符串
	return hex.EncodeToString(sum)[0:8]
}