2017-08-11 31 views
0

小さなBase64コーダ/デコーダプログラムを作成しようとしていますが、ルールやガイドライン、または予想される動作があるかどうかを判断しようとしています。有効でない文字を入力してください。Base64文字列のデコード中にエラーを処理する方法

改行などでは無効な文字を無視したり、ジャンクイン、ジャンクアウトの方法(データが部分的にデコードされる)残りはエラーの重大度または正確な数に依存します)。

同様の点:改行(PEMファイルのように、行が64文字の長さで区切られているような)を無視する必要があると思いますが、他の制御文字がありますので無視してください。

もし興味があれば、私は純粋な(バニラ)Cでコーディングしていますが、これにはまだライブラリがありません。しかし、そのディテールは、私が探している答えにとっては本当に重要ではありません。

ありがとうございました。

+0

この質問は広範囲です。使用されているbase64エンコーディングには少なくとも12種類のバリエーションがあります。使用するバリアントを選択し、そのバリアントのルールと制限を使用します。 –

+0

私は主に、実装されているRFCのRFC(1945、2068)の記述をベースにしています。これはMIME RFC(1341年まで)に基づいています。しかし、これらの情報源のどれもが誤りの場合に何をすべきかを記述していないようであった。 – Menachem

+1

ええ、ええ、私はRFC1945とRFC2068がHTTPプロトコルを定義するので、コンテンツのエンコードに関しては非常に曖昧であると思います。 MIME base64についてはRFC2045を参照してください。ただし、エラー処理は特定のアプリケーションのニーズに完全に依存します。 –

答えて

0

申し訳ありません。 RFCは、MIME(134115212045)上にある私が今まで見つけることができませんでした次の段落、含ま:超えない76文字ずつのラインで表現しなければならない

出力ストリーム(エンコードされたバイト)。 表1に記載されていないすべての改行またはその他の文字は、ソフトウェアのデコードで無視する必要があります。 Base64データでは、表1の文字以外の文字、改行、およびその他の空白は、おそらく、警告メッセージまたは場合によってはメッセージ拒否が適切な場合がある伝送エラーを示します。

いずれにしても、この質問と回答はStackOverflowで利用できることが適切です。

P.S. Base64の他の標準が他のガイドラインと一緒にある場合、他の回答にはリンクや引用符が適切です。

関連する問題