初始化项目
This commit is contained in:
81
agent-common/utils/StringUtils.go
Normal file
81
agent-common/utils/StringUtils.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
||||
func GenerateRandomString(length int, includeSpecialChar bool) string {
|
||||
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
letters := "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
specialChars := ".!@_#%^&*()-+"
|
||||
|
||||
b := make([]rune, length)
|
||||
|
||||
letterProbability := len(letters) * 100 / (len(letters) + len(specialChars))
|
||||
|
||||
if includeSpecialChar {
|
||||
for i := range b {
|
||||
if rand.Intn(100) < letterProbability { // 概率选择字母
|
||||
b[i] = rune(letters[rand.Intn(len(letters))])
|
||||
} else { // 概率选择特殊字符
|
||||
b[i] = rune(specialChars[rand.Intn(len(specialChars))])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for i := range b {
|
||||
b[i] = rune(letters[rand.Intn(len(letters))])
|
||||
}
|
||||
}
|
||||
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func ByteSizeToString(size uint64) string {
|
||||
const (
|
||||
B = 1
|
||||
KB = 1024 * B
|
||||
MB = 1024 * KB
|
||||
GB = 1024 * MB
|
||||
TB = 1024 * GB
|
||||
)
|
||||
|
||||
var unit string
|
||||
var value float64
|
||||
|
||||
switch {
|
||||
case size >= TB:
|
||||
value = float64(size) / TB
|
||||
unit = "TB"
|
||||
case size >= GB:
|
||||
value = float64(size) / GB
|
||||
unit = "GB"
|
||||
case size >= MB:
|
||||
value = float64(size) / MB
|
||||
unit = "MB"
|
||||
case size >= KB:
|
||||
value = float64(size) / KB
|
||||
unit = "KB"
|
||||
default:
|
||||
value = float64(size)
|
||||
unit = "B"
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%.2f %s", value, unit)
|
||||
}
|
||||
|
||||
func Base64Encode(content string) string {
|
||||
return base64.StdEncoding.EncodeToString([]byte(content))
|
||||
}
|
||||
|
||||
func Base64Decode(content string) string {
|
||||
decodeString, err := base64.StdEncoding.DecodeString(content)
|
||||
if err != nil {
|
||||
log.ErrorF("Base64Decode error: %s", err.Error())
|
||||
return ""
|
||||
}
|
||||
return string(decodeString)
|
||||
}
|
||||
Reference in New Issue
Block a user