2011-11-15 5 views
1

私は興味深い問題があります。私はさまざまな文字列、いくつかのbase64でエンコードされたもの、他のものではないPerlスクリプトに取り組んでいます。Perl - いつbase64にデコードするのですか?

このデータ構造は、サードパーティのアプリケーションからの入力から生成された動的なものです。私は、これらのフィールドのどれがbase64でエンコードされているか、エンコードされていないフィールドを事前に知る準備ができていません。

さまざまなソリューション私は、入力データに関するすべての正規表現を調べました。残念ながら、これらのデータはすべて厳密に英数字の構造になっていれば失敗します。

真にbase64でエンコードされている文字列を特定するにはどうすればよいですか?

+0

は以前[正規表現のBase64データを解析したり検証する](http://stackoverflow.com/questions/475074/regex-to-parse-or-validate-base64-data)質問が役立つはず答えました。 – yko

答えて

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"; 
    } 
関連する問題