package util import ( "crypto/rand" "encoding/hex" "fmt" "time" ) // RandomHex генерирует случайную hex-строку из n байт. // При ошибке crypto/rand использует time-based fallback. func RandomHex(n int) string { b := make([]byte, n) if _, err := rand.Read(b); err != nil { return fmt.Sprintf("%x", time.Now().UnixNano())[:n*2] } return hex.EncodeToString(b)[:n*2] }