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]
}
