Files
cmautobuy/admin/service/id.go
T

21 lines
596 B
Go
Raw Normal View History

package service
import (
"crypto/rand"
"encoding/hex"
)
// newID 生成一个随机编号,用作 result_id 之类的标识。
//
// 没用 UUID 库是为了少一个依赖——这里只要求"够随机、不重复",
// 16 字节的随机十六进制串完全够用。
func newID() string {
buf := make([]byte, 16)
if _, err := rand.Read(buf); err != nil {
// crypto/rand 读失败说明系统熵源出了问题,这种情况极罕见。
// 返回空串让调用方的响应里 result_id 为空,总比 panic 掉整个进程好。
return ""
}
return hex.EncodeToString(buf)
}