如何检查txt文件是否为base64编码

时间:2014-08-19 10:58:38

标签: java

我想检查.txt / .xml文件中是否包含任何base64编码数据? 有没有办法进行文件检查(比如EBCDIC和UCS-2,我们可以检查文件类型而不读取文件的整个内容)?

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;
    }
}