craban/server/utils/utils.go

34 lines
693 B
Go

package utils
import (
"strconv"
"time"
"github.com/dgrijalva/jwt-go"
"golang.org/x/crypto/bcrypt"
)
func Encrypt(s string) (string, error) {
b, err := bcrypt.GenerateFromPassword([]byte(s), bcrypt.DefaultCost)
if err != nil {
return "", err
}
return string(b), nil
}
func CheckHash(hash, password string) bool {
return bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) == nil
}
func GenerateToken(userID int, secret string) (string, error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"userID": strconv.Itoa(userID),
})
return token.SignedString([]byte(secret))
}
func Millis(t time.Time) int {
return int(t.UnixNano() / 1000000)
}