Ai
1 Star 0 Fork 0

瑞哥/rtool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
UniqueString.go 2.20 KB
一键复制 编辑 原始数据 按行查看 历史
Your Name 提交于 2023-10-27 11:11 +08:00 . 2023/10/27 周五 11:11:48.12
package rtool
import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"fmt"
"hash/crc32"
"hash/crc64"
"sync/atomic"
"time"
)
var _uniqueStr8 = time.Now().UnixNano()
// UniqueHex8 生成尽量唯一字符串,8位的十六进制。
func UniqueHex8() string {
uniqueID := atomic.AddInt64(&_uniqueStr8, 1)
return fmt.Sprintf("%x", crc32.ChecksumIEEE([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr16 = time.Now().UnixNano()
// UniqueHex16 生成尽量唯一字符串,16位的十六进制。
func UniqueHex16() string {
uniqueID := atomic.AddInt64(&_uniqueStr16, 1)
return fmt.Sprintf("%x", crc64.Checksum([]byte(fmt.Sprint(uniqueID)), crc64.MakeTable(crc64.ECMA)))
}
var _uniqueStr32 = time.Now().UnixNano()
// UniqueHex32 生成尽量唯一字符串,32位的十六进制。
func UniqueHex32() string {
uniqueID := atomic.AddInt64(&_uniqueStr32, 1)
return fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr40 = time.Now().UnixNano()
// UniqueHex40 生成尽量唯一字符串,40位的十六进制。
func UniqueHex40() string {
uniqueID := atomic.AddInt64(&_uniqueStr40, 1)
return fmt.Sprintf("%x", sha1.Sum([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr56 = time.Now().UnixNano()
// UniqueHex56 生成尽量唯一字符串,56位的十六进制。
func UniqueHex56() string {
uniqueID := atomic.AddInt64(&_uniqueStr56, 1)
return fmt.Sprintf("%x", sha256.Sum224([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr64 = time.Now().UnixNano()
// UniqueHex64 生成尽量唯一字符串,64位的十六进制。
func UniqueHex64() string {
uniqueID := atomic.AddInt64(&_uniqueStr64, 1)
return fmt.Sprintf("%x", sha256.Sum256([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr96 = time.Now().UnixNano()
// UniqueHex96 生成尽量唯一字符串,96位的十六进制。
func UniqueHex96() string {
uniqueID := atomic.AddInt64(&_uniqueStr96, 1)
return fmt.Sprintf("%x", sha512.Sum384([]byte(fmt.Sprint(uniqueID))))
}
var _uniqueStr128 = time.Now().UnixNano()
// UniqueHex128 生成尽量唯一字符串,128位的十六进制。
func UniqueHex128() string {
uniqueID := atomic.AddInt64(&_uniqueStr128, 1)
return fmt.Sprintf("%x", sha512.Sum512([]byte(fmt.Sprint(uniqueID))))
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ruige_fun/rtool.git
git@gitee.com:ruige_fun/rtool.git
ruige_fun
rtool
rtool
aa158f5f2a1d

搜索帮助