我想检查.txt / .xml文件中是否包含任何base64编码数据? 有没有办法进行文件检查(比如EBCDIC和UCS-2,我们可以检查文件类型而不读取文件的整个内容)?
答案 0 :(得分:1)
不幸的是,Base64不包含任何特殊的签名,表明内容是Base64编码的 - 它只是编码数据,可以有padding。
如果要检查整个文件或其中的一部分是否为Base64编码,则必须阅读要测试的字符串,并使用{{中提供的方法检查它是否为有效的Base64。 3}}
答案 1 :(得分:0)
您无法检查整个文件是否为base64,您可以检查此文件中的每个字符串以查看它是否为编码基数64.您可以使用以下函数执行此操作:
public bool IsBase64Encoded(String str)
{
try
{
// If no exception is caught, then it is possibly a base64 encoded string
byte[] data = Convert.FromBase64String(str);
// The part that checks if the string was properly padded to the
// correct length was borrowed from d@anish's solution
return (str.Replace(" ","").Length % 4 == 0);
}
catch
{
// If exception is caught, then it is not a base64 encoded string
return false;
}
}