if (urlSafe) return Convert.ToBase64String(bytes).TrimEnd('=').Replace('+', '-').Replace('/', '_'); return Convert.ToHexString(bytes); // Native in .NET 5+ } }
Except, it’s not done. That is a disaster waiting to happen. if (urlSafe) return Convert
Use a dedicated, cryptographically secure —specifically one built on RNGCryptoServiceProvider or RandomNumberGenerator . Whether you are generating an AES-256 key for a database column or an HMAC secret for a JWT, the entropy source is the only thing that stands between your data and a breach. if (urlSafe) return Convert