<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.0" />

UrlBase64

public class UrlBase64
using System; using System.IO; namespace Org.BouncyCastle.Utilities.Encoders { public class UrlBase64 { private static readonly IEncoder encoder = new UrlBase64Encoder(); public static byte[] Encode(byte[] data) { MemoryStream memoryStream = new MemoryStream(); try { encoder.Encode(data, 0, data.Length, memoryStream); } catch (IOException ex) { throw new Exception("exception encoding URL safe base64 string: " + ex.Message, ex); } return memoryStream.ToArray(); } public static int Encode(byte[] data, Stream outStr) { return encoder.Encode(data, 0, data.Length, outStr); } public static byte[] Decode(byte[] data) { MemoryStream memoryStream = new MemoryStream(); try { encoder.Decode(data, 0, data.Length, memoryStream); } catch (IOException ex) { throw new Exception("exception decoding URL safe base64 string: " + ex.Message, ex); } return memoryStream.ToArray(); } public static int Decode(byte[] data, Stream outStr) { return encoder.Decode(data, 0, data.Length, outStr); } public static byte[] Decode(string data) { MemoryStream memoryStream = new MemoryStream(); try { encoder.DecodeString(data, memoryStream); } catch (IOException ex) { throw new Exception("exception decoding URL safe base64 string: " + ex.Message, ex); } return memoryStream.ToArray(); } public static int Decode(string data, Stream outStr) { return encoder.DecodeString(data, outStr); } } }