Проверка Base64 для аудио - PullRequest
1 голос
/ 31 мая 2019

На самом деле, я хочу получить base64 в API, но я хочу разрешить base64, который содержит только аудио Ниже приводится функция, с помощью которой я проверяю base64, но перед Convert.FromBase64String(base64String); я хочу проверить, что этот base64аудио.

public static int CheckAudio(string base64String)
        {

            if (string.IsNullOrEmpty(base64String) || base64String.Length % 4 != 0
               || base64String.Contains(" ") || base64String.Contains("\t") || base64String.Contains("\r") || base64String.Contains("\n"))
                return (int)ConfezzStatusCode.InValidParamter;

            try
            {
                 Convert.FromBase64String(base64String);
                    return (int)HttpStatusCode.OK;
            }
            catch
            {
                // Handle the exception
                return (int)ConfezzStatusCode.InValidParamter;
            }
        }

Примечание. Я хочу разрешить только аудиофайлы.

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете использовать подписи файлов , чтобы определить, является ли это известным аудиоформатом.Примерно так:

// Decode the whole string to make sure it is a valid Base64
byte[] data = Convert.FromBase64String(base64String);

// Just for readability store it as HEX
// You might want to store only the file header (eg, 64 bytes)
string hex = BitConverter.ToString(data);

if (hex.StartsWith("49-44-33"))
{
  Console.WriteLine("mp3");
}
else if (hex.StartsWith("66-4C-61-43"))
{
  Console.WriteLine("flac");
}
else {
  Console.WriteLine("unknown:" + hex);
}

Для получения дополнительной информации проверьте:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...