我有一个有趣的问题。我正在研究一个Perl脚本,它接受各种字符串,一些是base64编码的,另一些则不是。
此数据结构是动态的,由第三方应用程序的输入生成。我没有一个现成的方法事先知道哪些字段是base64编码的,哪些字段不是。
我所看到的各种解决方案都涉及输入数据的正则表达式。不幸的是,如果数据具有相同的严格字母数字结构,则这些都会失败。
如何确定哪些字符串真正是base64编码的?
答案 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";
}