utils

package
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2026 License: MIT Imports: 21 Imported by: 0

README

Go 工具包使用文档

目录

哈希与加密

🔐 密码加密相关
函数名 参数 返回值 描述
HashAndSalt value string (string, error) 使用 bcrypt 算法对密码进行加密,推荐用于密码存储
ComparePasswords hashedPassword, password string bool 验证密码是否匹配,用于登录验证
🔑 基础哈希算法
函数名 参数 返回值 描述
MD5Hash text string string 计算文本的 MD5 值(不推荐用于密码)
SHA1Hash text string string 计算文本的 SHA1 值
SHA256Hash text string string 计算文本的 SHA256 值
SHA512Hash text string string 计算文本的 SHA512 值(最安全)
🛡️ 高级哈希功能
函数名 参数 返回��� 描述
GenerateSalt length int string 生成指定长度的随机盐值
HashWithSalt password, salt string string 将密码与盐值组合后进行 SHA256 哈希
HashWithPepper password, pepper string string 将密码与固定盐值(pepper)组合后哈希
DoubleHash text string string 对文本进行双重 SHA256 哈希,提升安全性
🔍 哈希验证
函数名 参数 返回值 描述
VerifyHash text, hash, algorithm string bool 验证文本与哈希值是否匹配

支持的算法:

  • "md5"
  • "sha1"
  • "sha256"
  • "sha512"
📝 Base64 编解码
函数名 参数 返回值 描述
Base64Encode text string string 将文本转换为 Base64 编码
Base64Decode encodedText string (string, error) 解码 Base64 字符串

随机生成

🎲 基础随机函数
函数名 参数 返回值 描述
RandomCode length int string 生成指定长度的随机数字码
RandomString length int string 生成指定长度的随机字符串(含大小写字母和数字)
RandomInt min, max int int 生成指定范围内的随机整数
RandomFloat min, max float64 float64 生成指定范围内的随机浮点数
RandomBool - bool 生成随机布尔值
🔤 字符串随机生成
函数名 参数 返回值 描述
RandomLowerString length int string 生成指定长度的随机小写字母字符串
RandomUpperString length int string 生成指定长度的随机大写字母字符串
RandomChoice[T any] slice []T T 从切片中随机选择一个元素
RandomTime start, end time.Time time.Time 生成指定范围内的随机时间

字符串处理

📝 大小写转换
函数名 参数 返回值 描述
LcFirst str string string 首字母小写
Lc str string string 转小写
UcFirst str string string 首字母大写
🔄 命名转换
函数名 参数 返回值 描述
SnakeCase str string string 转换为下划线命名 (例如: HelloWorld -> hello_world)
CamelCase str string string 转换为驼峰命名,支持特殊单词 (例如: user_id -> userID, ip_location -> ipLocation)
PascalCase str string string 转换为帕斯卡命名,首字母大写的驼峰 (例如: user_id -> UserID)
CamelColon str string string 驼峰转路径格式 (例如: ProcessTask -> process::task)
特殊单词处理

以下单词在转换时会保持大写:

  • ID, IP, URL, URI, API, UUID, HTML, XML, JSON
  • YAML, CSS, SQL, HTTP(S), FTP, SSH, SSL
  • TCP, UDP, GUI, UI, CDN, DNS, CPU, GPU
  • RAM, SDK, JWT, OAuth

示例:

🔠 其他字符串工具
函数名 参数 返回值 描述
StrPtr str string *string 返回字符串的指针
Pluralize word string string 将单词转换为复数形式
Able name string string 添加 "able" 后缀
IsInternalType name string bool 检查是否为内部类型(以__开头)

环境变量

🌍 环境变量获取
函数名 参数 返回值 描述
GetEnv key string, defaultValue ...string string 获取环境变量值
GetEnvInt key string, defaultValue ...int int 获取整数类型环境变量
GetEnvInt64 key string, defaultValue ...int64 int64 获取 int64 类型环境变量
GetEnvBool key string, defaultValue ...bool bool 获取布尔类型环境变量
GetEnvFloat64 key string, defaultValue ...float64 float64 获取浮点类型环境变量
📚 数组类型环境变量
函数名 参数 返回值 描述
GetEnvArray key, sep string, defaultValue ...[]string []string 获取字符串数组环境变量
GetEnvIntArray key, sep string, defaultValue ...[]int []int 获取整数数组环境变量
GetEnvInt64Array key, sep string, defaultValue ...[]int64 []int64 获取 int64 数组环境变量
GetEnvFloat64Array key, sep string, defaultValue ...[]float64 []float64 获取浮点数组环境变量

路径处理

📂 路径工具
函数名 参数 返回值 描述
GetProjectPath - (string, error) 获取项目根路径
GetModPath projectPath *string (string, error) 获取模块路径
GetPkgPath projectPath, filePath string (string, error) 获取包路径
GetGoPath - string 获取 GOPATH
GetFilePath path string (string, error) 获取文件路径
GetFileDir path string (string, error) 获取文件所在目录
MkdirAll path string error 创建多级目录

正则表达式

📋 格式验证
函数名 参数 返回值 描述
IsValidPhoneNumber phone string bool 验证中国手机号
IsValidIP ip string bool 验证 IPv4 地址
IsValidIPv6 ip string bool 验证 IPv6 地址
IsValidIDCard id string bool 验证身份证号(支持15位、18位和外国人永久居留证)
IsValidBankCard card string bool 验证银行卡号(16-19位)
IsValidPostCode code string bool 验证中国大陆邮编
🕒 时间日期验证
函数名 参数 返回值 描述
IsValidDate date string bool 验证日期格式(YYYY-MM-DD)
IsValidTime timeStr string bool 验证时间格式(HH:MM:SS)
IsValidDateTime datetime string bool 验证日期时间格式(YYYY-MM-DD HH:MM:SS)
IsValidAmount amount string bool 验证金额格式(123.45)

进度显示

🔄 进度条
函数名 参数 返回值 描述
SmoothProgress start, end int, status string, duration time.Duration, keepVisible bool - 显示平滑进度条动画

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Able added in v1.2.0

func Able(name string) string

func Base64Decode added in v1.2.0

func Base64Decode(encodedText string) (string, error)

Base64Decode 将Base64编码的字符串解码

func Base64Encode added in v1.2.0

func Base64Encode(text string) string

Base64Encode 将字符串进行Base64编码

func CamelCase

func CamelCase(str string) string

CamelCase 驼峰命名(增强版,支持特殊单词)

func CamelCaseWithSpecial added in v1.2.0

func CamelCaseWithSpecial(str string) string

CamelCaseWithSpecial 驼峰命名(特殊单词会保持大写)

func CamelColon added in v1.2.0

func CamelColon(str string) string

CamelColon 将驼峰命名转换为路径格式 (例如: ProcessTask -> process::task)

func ComparePasswords added in v1.2.0

func ComparePasswords(hashedPassword, password string) bool

ComparePasswords 比较哈希密码和输入的密码

func DoubleHash added in v1.2.0

func DoubleHash(text string) string

DoubleHash 对字符串进行双重哈希,增加安全性

func GenerateSalt added in v1.2.0

func GenerateSalt(length int) string

GenerateSalt 生成指定长度的随机盐值

func GenerateSignature added in v1.2.0

func GenerateSignature(length int, prefix string) (string, error)

func GetEnv added in v1.2.0

func GetEnv(key string, defaultValue ...string) string

GetEnv Get the value of the environment variable

func GetEnvArray added in v1.2.0

func GetEnvArray(key string, sep string, defaultValue ...[]string) []string

GetEnvArray Get the value of the environment variable as a string array

func GetEnvBool added in v1.2.0

func GetEnvBool(key string, defaultValue ...bool) bool

GetEnvBool Get the value of the environment variable as a bool

func GetEnvFloat64 added in v1.2.0

func GetEnvFloat64(key string, defaultValue ...float64) float64

GetEnvFloat64 Get the value of the environment variable as a float64

func GetEnvFloat64Array added in v1.2.0

func GetEnvFloat64Array(key string, sep string, defaultValue ...[]float64) []float64

GetEnvFloat64Array Get the value of the environment variable as a float64 array

func GetEnvInt added in v1.2.0

func GetEnvInt(key string, defaultValue ...int) int

GetEnvInt Get the value of the environment variable as an int

func GetEnvInt64 added in v1.2.0

func GetEnvInt64(key string, defaultValue ...int64) int64

GetEnvInt64 Get the value of the environment variable as an int64

func GetEnvInt64Array added in v1.2.0

func GetEnvInt64Array(key string, sep string, defaultValue ...[]int64) []int64

GetEnvInt64Array Get the value of the environment variable as an int64 array

func GetEnvIntArray added in v1.2.0

func GetEnvIntArray(key string, sep string, defaultValue ...[]int) []int

GetEnvIntArray Get the value of the environment variable as an int array

func GetFileDir

func GetFileDir(path string) (string, error)

GetFileDir returns the directory containing the file

func GetFilePath

func GetFilePath(path string) (string, error)

GetFilePath returns the file path

func GetGoModPath added in v1.2.5

func GetGoModPath() (string, error)

GetGoModPath returns the path to go.mod file using go env GOMOD

func GetGoPath

func GetGoPath() string

GetGoPath returns GOPATH

func GetModPath

func GetModPath(projectPath *string) (string, error)

GetModPath returns the module path using go env GOMOD Note: projectPath parameter is deprecated and ignored; go env GOMOD is used instead

func GetModuleRoot added in v1.2.5

func GetModuleRoot() (string, error)

GetModuleRoot returns the module root directory (directory containing go.mod)

func GetPkgPath

func GetPkgPath(projectPath, filePath string) (string, error)

GetPkgPath returns the package path Note: projectPath parameter is deprecated and ignored; go env GOMOD is used instead

func GetProjectPath

func GetProjectPath() (string, error)

GetProjectPath returns the project root path

func HashAndSalt added in v1.2.0

func HashAndSalt(value string) (string, error)

HashAndSalt 对字符串加密

func HashWithPepper added in v1.2.0

func HashWithPepper(password string, pepper string) string

HashWithPepper 将密码与pepper(固定盐值)组合后进行哈希

func HashWithSalt added in v1.2.0

func HashWithSalt(password string, salt string) string

HashWithSalt 将密码与盐值组合后进行哈希

func IsHashAndSalt added in v1.2.0

func IsHashAndSalt(value string, plainLength int) bool

func IsInternalType

func IsInternalType(name string) bool

func IsValidAmount added in v1.2.0

func IsValidAmount(amount string) bool

IsValidAmount 金额校验 格式: 123.45

func IsValidBankCard added in v1.2.0

func IsValidBankCard(card string) bool

IsValidBankCard checks if Chinese bank card number is valid (16-19 digits)

func IsValidDate added in v1.2.0

func IsValidDate(date string) bool

IsValidDate 日期校验 格式: YYYY-MM-DD

func IsValidDateTime added in v1.2.0

func IsValidDateTime(datetime string) bool

IsValidDateTime 日期时间校验 格式: YYYY-MM-DD HH:MM:SS

func IsValidIDCard added in v1.2.0

func IsValidIDCard(id string) bool

IsValidIDCard 验证身份证号码是否有效 支持15位老身份证、18位新身份证和外国人永久居留证 15位身份证格式: PPPPPPYYMMDDXXX 18位身份证格式: PPPPPPYYYYMMDDXXXC 外国人永久居留证格式: 前3位为字母,后13位为数字 P: 省份和城市代码, Y: 年份, M: 月份, D: 日期, X: 顺序码, C: 校验码

func IsValidIP added in v1.2.0

func IsValidIP(ip string) bool

IsValidIP 校验IPv4地址

func IsValidIPv6 added in v1.2.0

func IsValidIPv6(ip string) bool

IsValidIPv6 校验IPv6地址

func IsValidPhoneNumber added in v1.2.0

func IsValidPhoneNumber(phone string) bool

IsValidPhoneNumber 校验中国手机号 中国手机号的正则表达式:以1开头,第二位是3-9,后面跟9个数字,总共11位

func IsValidPostCode added in v1.2.0

func IsValidPostCode(code string) bool

IsValidPostCode 邮编校验 仅针对中国大陆邮编

func IsValidTime added in v1.2.0

func IsValidTime(timeStr string) bool

IsValidTime 时间校验 格式: HH:MM:SS

func Lc added in v1.2.0

func Lc(str string) string

转小写

func LcFirst

func LcFirst(str string) string

LcFirst 首字母小写

func MD5Hash added in v1.2.0

func MD5Hash(text string) string

MD5Hash 使用MD5算法对字符串进行哈希

func MkdirAll

func MkdirAll(path string) error

MkdirAll creates a directory named path, along with any necessary parents

func ParseJSONNumberToI64 added in v1.2.0

func ParseJSONNumberToI64(num json.Number) (int, error)

func PascalCase added in v1.2.0

func PascalCase(str string) string

PascalCase 帕斯卡命名(首字母大写的驼峰)

func Pluralize

func Pluralize(word string) string

Pluralize function to convert a word to its plural form

func RandomBool added in v1.2.0

func RandomBool() bool

生成随机布尔值

func RandomChoice added in v1.2.0

func RandomChoice[T any](slice []T) T

从切片中随机选择一个元素

func RandomCode added in v1.2.0

func RandomCode(length int) string

生成指定长度的随机数字码

func RandomFloat added in v1.2.0

func RandomFloat(min, max float64) float64

生成指定范围内的随机浮点数

func RandomInt added in v1.2.0

func RandomInt(min, max int) int

生成指定范围内的随机整数

func RandomLowerString added in v1.2.0

func RandomLowerString(length int) string

生成指定长度的随机小写字母字符串

func RandomString added in v1.2.0

func RandomString(length int) string

生成指定长度的随机字符串,包含大小写字母和数字

func RandomTime added in v1.2.0

func RandomTime(start, end time.Time) time.Time

生成指定范围内的随机时间

func RandomUpperString added in v1.2.0

func RandomUpperString(length int) string

生成指定长度的随机大写字母字符串

func SHA1Hash added in v1.2.0

func SHA1Hash(text string) string

SHA1Hash 使用SHA1算法对字符串进行哈希

func SHA256Hash added in v1.2.0

func SHA256Hash(text string) string

SHA256Hash 使用SHA256算法对字符串进行哈希

func SHA512Hash added in v1.2.0

func SHA512Hash(text string) string

SHA512Hash 使用SHA512算法对字符串进行哈希

func SmoothProgress added in v1.2.0

func SmoothProgress(start, end int, status string, duration time.Duration, keepVisible bool)

func SnakeCase

func SnakeCase(str string) string

SnakeCase 下划线命名

func StrPtr

func StrPtr(str string) *string

func UcFirst

func UcFirst(str string) string

UcFirst 首字母大写

func VerifyHash added in v1.2.0

func VerifyHash(text string, hash string, algorithm string) bool

VerifyHash 验证字符串与其哈希值是否匹配(支持多种哈希算法)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL