package auth import ( "crypto/md5" "crypto/sha1" "fmt" ) // sha1($customer['salt'] . md5($customer['salt'] . $password)) func HashPassword(salt, password string) string { saltBytes := []byte(salt) passwordBytes := []byte(password) // 计算 md5($customer['salt'] . $password) md5Hash := md5.Sum(append(saltBytes, passwordBytes...)) // 计算 $customer['salt'] . md5($customer['salt'] . $password) combined := append(saltBytes, []byte(fmt.Sprintf("%x", md5Hash))...) // 计算 sha1($customer['salt'] . md5($customer['salt'] . $password)) sha1Hash := sha1.Sum(combined) return fmt.Sprintf("%x", sha1Hash) } func CheckPassword(custPassword, salt, randomPassword string, password string) bool { if custPassword == HashPassword(salt, password) { return true } // 验证密码规则2 if password == fmt.Sprintf("%x", sha1.Sum([]byte(randomPassword))) { return true } // 如果两个条件都不满足,则返回false return false }