音频的 Base64 验证
Posted
技术标签:
【中文标题】音频的 Base64 验证【英文标题】:Base64 Validation For Audio 【发布时间】:2019-10-17 01:08:47 【问题描述】:实际上,我想在 API 中接收 base64,但我想允许 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】:您可以使用file signatures 来检测它是否是已知的音频格式。像这样的:
// 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);
更多想法请查看:
Using .NET, how can you find the mime type of a file based on the file signature not the extension In C#, how can I know the file type from a byte[]?【讨论】:
以上是关于音频的 Base64 验证的主要内容,如果未能解决你的问题,请参考以下文章