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 }