utils.go 1.09 KB
package common

import (
	"bytes"
	"crypto/md5"
	"encoding/hex"
	"math/rand"
	"strconv"
	"strings"
	"time"
)

func Md5V(str string) string {
	h := md5.New()
	h.Write([]byte(str))
	return hex.EncodeToString(h.Sum(nil))
}

func Timex() int64 {
	return time.Now().Unix()
}

var defaultLetters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")

func RandomString(n int, allowedChars ...[]rune) string {
	var letters []rune

	if len(allowedChars) == 0 {
		letters = defaultLetters
	} else {
		letters = allowedChars[0]
	}

	b := make([]rune, n)
	for i := range b {
		b[i] = letters[rand.Intn(len(letters))]
	}

	return string(b)
}

func RandomName(name [][]string) string {
	idx1 := rand.Intn(len(name[0]))
	idx2 := rand.Intn(len(name[1]))

	return name[0][idx1] + name[1][idx2]
}

// FirstCharToUpper 英文字符串,第一个字符大写
func FirstCharToUpper(key string) string {
	first := strings.ToUpper(key[0:1])
	return first + key[1:]
}

func RandomCode() string {
	var str bytes.Buffer
	for i := 0; i < 6; i++ {
		str.WriteString(strconv.Itoa(rand.Intn(9)))
	}
	return str.String()
}