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) }