67 lines
2.2 KiB
Go
67 lines
2.2 KiB
Go
package utils
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/hex"
|
|
"math/rand"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// GetDeviceId
|
|
// @description: 生成设备ID
|
|
// @return deviceId 设备ID
|
|
func GetDeviceId() (deviceId string) {
|
|
// 创建一个有种子的随机数生成器
|
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
// 定义可能的字母
|
|
letters := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
// 初始化字符串构建器
|
|
var sb strings.Builder
|
|
// 生成15个随机字母
|
|
for i := 0; i < 15; i++ {
|
|
sb.WriteByte(letters[r.Intn(len(letters))])
|
|
}
|
|
// 计算MD5哈希
|
|
hash := md5.Sum([]byte(sb.String()))
|
|
hashString := hex.EncodeToString(hash[:])
|
|
|
|
// 返回49加上MD5哈希的第3个字符开始的部分
|
|
return "49" + hashString[2:]
|
|
}
|
|
|
|
// GetDeviceName
|
|
// @description: 生成设备名称
|
|
// @return deviceName 设备名称
|
|
func GetDeviceName() (deviceName string) {
|
|
firstNames := []string{
|
|
"Oliver", "Emma", "Liam", "Ava", "Noah", "Sophia", "Elijah", "Isabella",
|
|
"James", "Mia", "William", "Amelia", "Benjamin", "Harper", "Lucas", "Evelyn",
|
|
"Henry", "Abigail", "Alexander", "Ella", "Jackson", "Scarlett", "Sebastian",
|
|
"Grace", "Aiden", "Chloe", "Matthew", "Zoey", "Samuel", "Lily", "David",
|
|
"Aria", "Joseph", "Riley", "Carter", "Nora", "Owen", "Luna", "Daniel",
|
|
"Sofia", "Gabriel", "Ellie", "Matthew", "Avery", "Isaac", "Mila", "Leo",
|
|
"Julian", "Layla",
|
|
}
|
|
|
|
lastNames := []string{
|
|
"Smith", "Johnson", "Williams", "Brown", "Jones", "Garcia", "Miller", "Davis",
|
|
"Rodriguez", "Martinez", "Hernandez", "Lopez", "Gonzalez", "Wilson", "Anderson",
|
|
"Thomas", "Taylor", "Moore", "Jackson", "Martin", "Lee", "Perez", "Thompson",
|
|
"White", "Harris", "Sanchez", "Clark", "Ramirez", "Lewis", "Robinson", "Walker",
|
|
"Young", "Allen", "King", "Wright", "Scott", "Torres", "Nguyen", "Hill",
|
|
"Flores", "Green", "Adams", "Nelson", "Baker", "Hall", "Rivera", "Campbell",
|
|
"Mitchell", "Carter", "Roberts", "Gomez", "Phillips", "Evans",
|
|
}
|
|
|
|
// 使用随机数生成器
|
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
|
|
// 随机选择名字和姓氏
|
|
firstName := firstNames[r.Intn(len(firstNames))]
|
|
lastName := lastNames[r.Intn(len(lastNames))]
|
|
|
|
// 返回组合后的字符串
|
|
return firstName + " " + lastName + "'s Pad"
|
|
}
|