Files
mq/utils/encrypt.go
2024-10-10 20:35:18 +05:45

44 lines
814 B
Go

package utils
import (
"crypto/rand"
"encoding/base64"
"encoding/hex"
"fmt"
)
func GenerateHMACKey(length int) (string, error) {
key := make([]byte, length)
_, err := rand.Read(key)
if err != nil {
return "", fmt.Errorf("failed to generate random key: %v", err)
}
return hex.EncodeToString(key), nil
}
func MustGenerateHMACKey(length int) string {
key, err := GenerateHMACKey(length)
if err != nil {
panic(err)
}
return key
}
func GenerateSecretKey(length int) (string, error) {
key := make([]byte, length)
_, err := rand.Read(key)
if err != nil {
return "", err
}
secretKey := base64.StdEncoding.EncodeToString(key)
return secretKey[:length], nil
}
func MustGenerateSecretKey(length int) string {
key, err := GenerateSecretKey(length)
if err != nil {
panic(err)
}
return key
}