using System.Threading.Tasks;
private static System.Buffers.SearchValues<char> base64SearchValues =
System.Buffers.SearchValues.Create(@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=");
public async static Task Main(string[] args)
var base64Str = Convert.ToBase64String(Encoding.UTF8.GetBytes("this is a Base64 str"));
var notBase64Str = "this is not a Base64 str";
Console.WriteLine(await IsBase64String(base64Str));
Console.WriteLine(await IsBase64String(notBase64Str));
Console.WriteLine(await IsBase64String(null));
Console.WriteLine(await IsBase64String(""));
public async static Task<bool> IsBase64String(string base64)
return await Task.FromResult(
base64?.Length % 4 == 0 &&
base64.AsSpan().IndexOfAnyExcept(base64SearchValues) < 0