package hash import ( "crypto/md5" "crypto/sha256" "encoding/hex" "golang.org/x/crypto/bcrypt" ) // HashPassword 使用 bcrypt 加密密码 func HashPassword(password string) (string, error) { bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) return string(bytes), err } // CheckPassword 验证密码 func CheckPassword(password, hashedPassword string) bool { err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password)) return err == nil } // MD5 生成 MD5 哈希 func MD5(str string) string { h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) } // SHA256 生成 SHA256 哈希 func SHA256(str string) string { h := sha256.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) }