liuxiaolong
2020-06-22 8a0cb38a396e18a9f220bd5144212baca18f49d1
extend/util/util.go
@@ -5,16 +5,30 @@
   "crypto/md5"
   "crypto/sha256"
   "encoding/base64"
   "encoding/hex"
   "fmt"
   "math/rand"
   "strconv"
   "strings"
   "time"
   "unsafe"
)
func Sha256(message string) string {
   h := sha256.New()
   h.Write([]byte(message))
   res := h.Sum(nil)
   return hex.EncodeToString(res)
}
func ComputeHmacSha256Base64(message string, secret string) string {
   key := []byte(secret)
   h := hmac.New(sha256.New, key)
   h.Write([]byte(message))
   abs := h.Sum(nil)
   return base64.StdEncoding.EncodeToString(abs)
}
func Hik_ComputeSignatureBase64(appKey string, appSecret string, httpMethod string, accept string, contentType string, date string, url string) string {
   httpHeaders := httpMethod +"\n" + accept + "\n" + contentType + "\n"+ date +"\n"
@@ -43,4 +57,29 @@
func MD5Base64(s []byte) string {
   sum := md5.Sum(s)
   return base64.StdEncoding.EncodeToString(sum[:])
}
func GenValidateCode(width int) string {
   numeric := [10]byte{0,1,2,3,4,5,6,7,8,9}
   r := len(numeric)
   rand.Seed(time.Now().UnixNano())
   var sb strings.Builder
   for i := 0; i < width; i++ {
      fmt.Fprintf(&sb, "%d", numeric[ rand.Intn(r) ])
   }
   str := sb.String()
   if strings.HasPrefix(str, "0") {
      pI := RandInt(1,9)
      str = strconv.Itoa(pI) + str[1:]
   }
   return str
}
//生成区间随机数
func RandInt(min, max int) int {
   if min >= max || min ==0 ||max == 0 {
      return max
   }
   return rand.Intn(max-min) + min
}