代码拉取完成,页面将自动刷新
package util
import (
"crypto/md5"
"crypto/sha1"
"fmt"
"math/rand"
"sort"
"strings"
"time"
)
// Substr 截取字符串 start 起点下标 end 终点下标(不包括)
func Substr(str string, start int, end int) string {
rs := []rune(str)
length := len(rs)
if start < 0 || start > length || end < 0 {
return ""
}
if end > length {
return string(rs[start:])
}
return string(rs[start:end])
}
// SortSha1 排序并sha1,主要用于计算signature
func SortSha1(s ...string) string {
sort.Strings(s)
h := sha1.New()
h.Write([]byte(strings.Join(s, "")))
return fmt.Sprintf("%x", h.Sum(nil))
}
// SortMd5 排序并md5,主要用于计算sign
func SortMd5(s ...string) string {
sort.Strings(s)
h := md5.New()
h.Write([]byte(strings.Join(s, "")))
return strings.ToUpper(fmt.Sprintf("%x", h.Sum(nil)))
}
// GetRandomString 获得随机字符串
func GetRandomString(l int) string {
str := "0123456789abcdefghijklmnopqrstuvwxyz"
bytes := []byte(str)
result := []byte{}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := 0; i < l; i++ {
result = append(result, bytes[r.Intn(len(bytes))])
}
return string(result)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。