Files
2026-08-29 23:34:01 +08:00

19 lines
449 B
Go

// Package sessionid 提供高熵 session ID 生成器
package sessionid
import (
"crypto/rand"
"encoding/base64"
)
// Generate 生成 128-bit 随机 session ID
// 输出为 base64url (无 padding) 编码,共 22 字符
// 熵值 2^128 ≈ 3.4e38,暴力枚举不可行
func Generate() (string, error) {
b := make([]byte, 16)
if _, err := rand.Read(b); err != nil {
return "", err
}
return base64.RawURLEncoding.EncodeToString(b), nil
}