Perl - 何时进行base64解码?

时间:2011-11-15 18:05:43

标签: perl base64 pcre

我有一个有趣的问题。我正在研究一个Perl脚本,它接受各种字符串,一些是base64编码的,另一些则不是。

此数据结构是动态的,由第三方应用程序的输入生成。我没有一个现成的方法事先知道哪些字段是base64编码的,哪些字段不是。

我所看到的各种解决方案都涉及输入数据的正则表达式。不幸的是,如果数据具有相同的严格字母数字结构,则这些都会失败。

如何确定哪些字符串真正是base64编码的?

1 个答案:

答案 0 :(得分:0)

我最终会对一切临时变量进行解码,并且看到输出包含任何高八位字节输出。

    $value2=decode_base64( $hash{$key} );
    if( !( $value2 =~ m/[\x7F-\xFF]/ ) )
    {
        print "It appears that $key is base64 encoded.\n";
        $value=$value2;
    }
    else
    {
        print "It appears that $key is not base64 encoded.\n";
    }