C# 如何知道以base64字符串加密的文件类型
我有一个base64解码器的任务。正如您所知,base64不包含任何有关源文件名的信息,但前5个符号确实包含有关文件类型的信息。我已经有了一个从base64字符串返回类型的函数。给你C# 如何知道以base64字符串加密的文件类型,c#,base64,decode,decoder,C#,Base64,Decode,Decoder,我有一个base64解码器的任务。正如您所知,base64不包含任何有关源文件名的信息,但前5个符号确实包含有关文件类型的信息。我已经有了一个从base64字符串返回类型的函数。给你 string GetFileTypeByBase64(string base64) { var data = base64.Substring(0, 5); switch (data.ToUpper()) { case &quo
string GetFileTypeByBase64(string base64)
{
var data = base64.Substring(0, 5);
switch (data.ToUpper())
{
case "IVBOR":
return ".png";
case "/9J/4":
return ".jpg";
case "AAAAI":
return ".mp4";
case "JVBER":
return ".pdf";
case "AAABA":
return ".ico";
case "UMFYI":
return ".rar";
case "E1XYD":
return ".rtf";
case "U1PKC":
return ".txt";
case "MQOWM":
case "77U/M":
return ".srt";
default:
return "." + data;
}
}
这里是我的问题:我如何知道base64字符串中的文件是mp3还是wav?
(如果您提供其他文件类型符号,我们将不胜感激)关于您的switch语句,WAV文件的字符串为“UklGR”,MP3文件的字符串为“SUQzB”
这些字符串是文件本身的字节,因此该字符串基本上是文件头的第一部分。但前5个符号确实包含有关文件类型的信息,这只是正确的一半。事实上,base64只包含原始文件的编码字节,没有自己的头。许多文件格式的文件头通常以某个字节序列开头,因此base64编码的字符串也以某个序列开头。例如,每个base64编码png以“iVBOR”开头。另请参阅。当您理解这一点时,您可以很容易地找到每个具有固定头的文件类型。要么在谷歌上快速搜索文件格式,要么对一些相同类型的文件进行编码,看看结果是否总是以相同的字符开头。这能回答你的问题吗?