61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package stringUtil
|
||
|
||
import (
|
||
"crypto/rand"
|
||
"encoding/base64"
|
||
"io"
|
||
"strings"
|
||
|
||
"goutil/securityUtil"
|
||
)
|
||
|
||
// 获取新的GUID字符串
|
||
// 返回值:
|
||
// 新的GUID字符串
|
||
func GetNewGUID() string {
|
||
b := make([]byte, 48)
|
||
if _, err := io.ReadFull(rand.Reader, b); err != nil {
|
||
return ""
|
||
}
|
||
|
||
return securityUtil.Md5String(base64.URLEncoding.EncodeToString(b), true)
|
||
}
|
||
|
||
// 生成空的GUID字符串
|
||
// 返回值:
|
||
// 空的GUID字符串
|
||
func GetEmptyGUID() string {
|
||
return "00000000-0000-0000-0000-000000000000"
|
||
}
|
||
|
||
// 判断GUID是否为空
|
||
// guid:GUID
|
||
// 返回值:
|
||
// 是否为空
|
||
func IsGUIDEmpty(guid string) bool {
|
||
if guid == "" || guid == "00000000-0000-0000-0000-000000000000" {
|
||
return true
|
||
}
|
||
|
||
return false
|
||
}
|
||
|
||
// 获取新的GUID字符串
|
||
// 返回值:
|
||
// 新的GUID字符串
|
||
func GetNewUUID() string {
|
||
str := GetNewGUID()
|
||
var builder strings.Builder
|
||
builder.WriteString(Substring(str, 0, 8))
|
||
builder.WriteString("-")
|
||
builder.WriteString(Substring(str, 8, 4))
|
||
builder.WriteString("-")
|
||
builder.WriteString(Substring(str, 12, 4))
|
||
builder.WriteString("-")
|
||
builder.WriteString(Substring(str, 16, 4))
|
||
builder.WriteString("-")
|
||
builder.WriteString(Substring(str, 20, 12))
|
||
|
||
return strings.ToLower(builder.String())
|
||
}
|