代码拉取完成,页面将自动刷新
package util
import (
"crypto/md5"
"crypto/sha1"
"encoding/hex"
"math/rand"
"time"
"github.com/spf13/cast"
)
// Md5 md5 加密
func Md5(str string) string {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
// Sha1 sha1 加密
func Sha1(str string) string {
h := sha1.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
// strType 000, 第一位代表int, 第二位代表 string_upper, 第三位代表 string_lower
const (
RandInt = 1 << iota
RandStringUpper
RandStringLower
RandStringSpecial
)
// RandStr
// @Description: 生成随机字符串
// @param args args[0] length, args[1]strtype
// @return string
func RandStr(args ...interface{}) string {
// 长度处理
if len(args) < 1 {
return ""
}
length := cast.ToInt(args[0])
// 字符处理
intArr := []rune("0123456789")
strLower := []rune("abcdefghijklmnopqrstuvwxyz")
strUpper := []rune("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
strSpecial := []rune("{}[]()~!@#$%^&*_-+=/")
allStr := make([]rune, 0)
// 默认全选
typeValue := RandInt + RandStringUpper + RandStringLower
if len(args) > 1 {
typeValue = cast.ToInt(args[1])
}
// 是否包含整数
if RandInt&typeValue == RandInt {
allStr = append(allStr, intArr...)
}
// 是否包含 小写字符串
if RandStringLower&typeValue == RandStringLower {
allStr = append(allStr, strLower...)
}
// 是否包含大写字符串
if RandStringUpper&typeValue == RandStringUpper {
allStr = append(allStr, strUpper...)
}
// 是否包含特殊字符串
if RandStringSpecial&typeValue == RandStringSpecial {
allStr = append(allStr, strSpecial...)
}
if len(allStr) == 0 {
return ""
}
result := make([]rune, length)
rand.Seed(time.Now().UnixNano() + int64(rand.Intn(100)))
for i := 0; i < length; i++ {
result[i] = allStr[rand.Intn(len(allStr))]
}
return string(result)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。