我如何知道以 base64 字符串加密的文件类型
How do I know file type encrypted in base64 string
我有一个base64解码器的任务。如您所知,base64 不包含有关源文件名的任何信息,但前 5 个符号确实包含有关文件类型的信息。我已经有一个 returns 从 base64 字符串输入的函数。在这里。
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”。
这些字符串是文件本身的字节,因此这个字符串实际上是文件头的第一部分。
我有一个base64解码器的任务。如您所知,base64 不包含有关源文件名的任何信息,但前 5 个符号确实包含有关文件类型的信息。我已经有一个 returns 从 base64 字符串输入的函数。在这里。
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”。
这些字符串是文件本身的字节,因此这个字符串实际上是文件头的第一部分。