This commit is contained in:
2025-02-27 15:05:34 +08:00
parent 3f85158eed
commit be0db326b9
58 changed files with 1779 additions and 361 deletions

View File

@ -103,6 +103,31 @@ func (in IntToStr) Encode(uid int) string {
return string(code)
}
func (i IntToStr) GenerateRandomCode(num int) string {
// 用当前时间 + 随机数生成编码基础值
rand.Seed(time.Now().UnixNano()) // Ensure randomness
num = num + rand.Intn(10000) // 通过加入随机数,避免重复
// 对输入进行基础的模运算,避免直接按时间戳生成
var result []rune
for num > 0 {
result = append(result, i.AlphanumericSet[num%len(i.AlphanumericSet)])
num = num / len(i.AlphanumericSet)
}
// 返回编码后的字符串,并保证字符串长度固定
for len(result) < i.Len {
result = append(result, i.AlphanumericSet[rand.Intn(len(i.AlphanumericSet))])
}
// 将结果逆序,保证更好的随机性
for i, j := 0, len(result)-1; i < j; i, j = i+1, j-1 {
result[i], result[j] = result[j], result[i]
}
return string(result)
}
const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
const smsLetters = "0123456789"