namespace marlin.core.util; using System.Security.Cryptography; public class SecureTokenGenerator { private const string ALLOWED_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; private static string Create(int length = 32) { return RandomNumberGenerator.GetString(ALLOWED_CHARS, length); } public static string CreateAgentToken() => "ag-" + Create(); public static string CreateClaimToken() => "cl-" + Create(); }