utils

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: May 21, 2025 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StringLetter = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	NumberLetter = "0123456789"
)

Variables

View Source
var Pwd = pwd{
	// contains filtered or unexported fields
}

Pwd 密码哈希工具

  • 关于 KDF (Key Derivation Functions, 密钥派生函数)

本包使用的 KDF 实现有: bcrypt, scrypt, argon2

bcrypt 最早出现, 通过加盐(salt)防止彩虹表攻击, 配置工作因子(cost)调节计算时间以对抗硬件加速暴力破解

scrypt 晚于 bcrypt 出现, 通过内存密集计算来抵抗GPU/ASIC/FPGA等硬件加速暴力破解

argon2 密码哈希竞赛胜者, 在配置合理情况下, 比 bcrypt,scrypt 有更强的抗破解性 有三个变种实现 argon2d, argon2i, argon2id, 本包使用 argon2id

View Source
var Sign = sign{}

Sign 签名工具方法

  • 关于 HMAC

HMAC (Hash-based Message Authentication Code, 基于哈希的消息认证码) 用于消息身份验证、消息完整性校验、密钥派生等,因为单纯使用哈希函数无法认证来源与防止篡改

  • 关于哈希算法

SHA 哈希算法是散列算法的一种、主流有 SHA-1, SHA-2(SHA-256, SHA-384, SHA-512), SM3 实现

  • 关于编码方式

Hex 十六进制编码 每字节对应两字符、占用约 200% 空间,用于颜色代码/mac地址等

Base64 编码 每字节对应三字符、占用约 133% 空间、结尾可能有一或二个"="填充,用于邮件附件/url参数等

Functions

func GoVer

func GoVer() string

GoVer 当前Go环境版本

例如: "1.18.2"

func GoVerEq

func GoVerEq[T Number](major, minor T, patch ...T) bool

GoVerEq 当前Go环境是否 等于 指定版本

  • major 目标主版本号 Number类型(如:1)
  • minor 目标次版本号 Number类型(如:18)
  • patch 目标修订版本号(可选) Number类型(如:2) 不传默认为0

func GoVerGt

func GoVerGt[T Number](major, minor T, patch ...T) bool

GoVerGt 当前Go环境是否 大于 指定版本

  • major 目标主版本号 Number类型(如:1)
  • minor 目标次版本号 Number类型(如:18)
  • patch 目标修订版本号(可选) Number类型(如:2) 不传默认为0

func GoVerLt

func GoVerLt[T Number](major, minor T, patch ...T) bool

GoVerLt 当前Go环境是否 小于 指定版本

  • major 目标主版本号 Number类型(如:1)
  • minor 目标次版本号 Number类型(如:18)
  • patch 目标修订版本号(可选) Number类型(如:2) 不传默认为0

func GzipDecode added in v0.5.0

func GzipDecode(input []byte) ([]byte, error)

Gzip 解压

func GzipEncode added in v0.5.0

func GzipEncode(input []byte) ([]byte, error)

Gzip 压缩

func Md5File

func Md5File(fs io.Reader) string

Md5File 生成32位文件md5码

func Md5Str

func Md5Str(str string) string

Md5Str 生成32位md5码

func Md5Str16

func Md5Str16(str string) string

Md5Str16 生成16位md5码

func Must

func Must(in error, msg ...string)

Must 必须无错误 否则Panic

func MustFalse

func MustFalse(in bool, msg ...string)

MustFalse 必须为False 否则Panic

func MustTrue

func MustTrue(in bool, msg ...string)

MustTrue 必须为True 否则Panic

func MustZero

func MustZero[T Number](in T, msg ...string)

MustZero 必须为0 否则Panic

func MustZeroN

func MustZeroN[T Number](in T, msg ...string)

MustZeroN 必须不为0 否则Panic

func RandNumStr

func RandNumStr[T Number](n T) string

RandNumStr 生成指定长度的 随机(数值)字符串

func RandStr

func RandStr[T Number](n T) string

RandStr 生成指定长度的 随机(字母+数值)字符串

Types

type NetworkInfo

type NetworkInfo struct {
	Name string   `json:"name"`
	Mac  string   `json:"mac"`
	Ipv4 []string `json:"ipv4"`
	Ipv6 []string `json:"ipv6"`
}

func NetworkInfoList

func NetworkInfoList() (list []*NetworkInfo, err error)

NetworkInfoList 获取当前主机网络信息

注: 每张(启用/非环回/非虚拟)网卡的所有(全局单播)网络

type Number

type Number interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64
}

泛型定义 数值类型限定

Jump to

Keyboard shortcuts

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