Perl - когда декодировать на base64? - PullRequest
1 голос
/ 15 ноября 2011

У меня интересная проблема. Я работаю над сценарием Perl, который принимает различные строки, некоторые закодированы в base64, другие нет.

Эта структура данных является динамической, сгенерированной из входных данных стороннего приложения. У меня нет готового способа узнать заранее, какие из этих полей кодируются в base64, а какие нет.

Различные решения, которые я рассмотрел, включали регулярные выражения во входных данных. К сожалению, все они терпят неудачу, если данные имеют одинаковую буквенно-цифровую структуру.

Как определить, какие строки действительно закодированы в base64?

1 Ответ

0 голосов
/ 15 ноября 2011

Я закончил тем, что выполнил декодирование всех данных во временную переменную, и просмотр выходных данных содержал любой вывод с высоким октетом.

    $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";
    }
...