From 05d37e5791553bcbd01433cac7f236b1e79ff607 Mon Sep 17 00:00:00 2001 From: XOF Date: Mon, 15 Dec 2025 01:48:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20config/utils.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/utils.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 config/utils.go diff --git a/config/utils.go b/config/utils.go new file mode 100644 index 0000000..3c200c2 --- /dev/null +++ b/config/utils.go @@ -0,0 +1,35 @@ +package config + +import ( + "crypto/rand" + "encoding/base64" + "encoding/hex" +) + +// GenerateRandomString 生成加密安全的随机字符串 +func GenerateRandomString(length int) string { + bytes := make([]byte, length) + if _, err := rand.Read(bytes); err != nil { + panic("failed to generate random string: " + err.Error()) + } + return hex.EncodeToString(bytes) +} + +// GenerateRandomBase64 生成 Base64 编码的随机字符串 +func GenerateRandomBase64(length int) string { + bytes := make([]byte, length) + if _, err := rand.Read(bytes); err != nil { + panic("failed to generate random string: " + err.Error()) + } + return base64.URLEncoding.EncodeToString(bytes) +} + +// GenerateSessionSecret 生成会话密钥 +func GenerateSessionSecret() string { + return GenerateRandomString(32) // 64 个十六进制字符 +} + +// GenerateCSRFToken 生成 CSRF 令牌 +func GenerateCSRFToken() string { + return GenerateRandomBase64(32) +}