Documentation
¶
Index ¶
- Constants
- Variables
- func GoVer() string
- func GoVerEq[T Number](major, minor T, patch ...T) bool
- func GoVerGt[T Number](major, minor T, patch ...T) bool
- func GoVerLt[T Number](major, minor T, patch ...T) bool
- func GzipDecode(input []byte) ([]byte, error)
- func GzipEncode(input []byte) ([]byte, error)
- func Md5File(fs io.Reader) string
- func Md5Str(str string) string
- func Md5Str16(str string) string
- func Must(in error, msg ...string)
- func MustFalse(in bool, msg ...string)
- func MustTrue(in bool, msg ...string)
- func MustZero[T Number](in T, msg ...string)
- func MustZeroN[T Number](in T, msg ...string)
- func RandNumStr[T Number](n T) string
- func RandStr[T Number](n T) string
- type NetworkInfo
- type Number
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 GoVerEq ¶
GoVerEq 当前Go环境是否 等于 指定版本
- major 目标主版本号 Number类型(如:1)
- minor 目标次版本号 Number类型(如:18)
- patch 目标修订版本号(可选) Number类型(如:2) 不传默认为0
func GoVerGt ¶
GoVerGt 当前Go环境是否 大于 指定版本
- major 目标主版本号 Number类型(如:1)
- minor 目标次版本号 Number类型(如:18)
- patch 目标修订版本号(可选) Number类型(如:2) 不传默认为0
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 获取当前主机网络信息
注: 每张(启用/非环回/非虚拟)网卡的所有(全局单播)网络
Click to show internal directories.
Click to hide internal directories.