Files
kra-new/internal/utils/serial/serial.go
T
2026-09-23 17:42:55 +08:00

17 lines
420 B
Go

package serial
import (
"crypto/rand"
"encoding/base32"
"fmt"
)
// New appends a 26-character base32 value with 128 random bits to prefix.
func New(prefix string) (string, error) {
var entropy [16]byte
if _, err := rand.Read(entropy[:]); err != nil {
return "", fmt.Errorf("generate serial number: %w", err)
}
return prefix + base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(entropy[:]), nil
}