package security import ( "crypto/rand" "crypto/sha256" "encoding/hex" ) func GenerateResetToken() (plain string, hash string, err error) { b := make([]byte, 32) // 256 bit if _, err = rand.Read(b); err != nil { return } plain = hex.EncodeToString(b) sum := sha256.Sum256([]byte(plain)) hash = hex.EncodeToString(sum[:]) return } func HashToken(plain string) string { sum := sha256.Sum256([]byte(plain)) return hex.EncodeToString(sum[:]) }