1

PBEWithMD5AndDESによって提供され、次にBase64でエンコードされた暗号化文字列にCRまたはLF文字を含めることができますか?

4

3 に答える 3

3

Base64は印刷可能な文字のみです。ただし、電子メールのMIMEタイプとして使用される場合は、CR-LFで区切られた行に分割されます。

于 2012-08-04T20:50:59.657 に答える
1

PBEWithMD5AndDESはバイナリデータを返します。PBE暗号化はPKCS#5標準内で定義されており、この標準には専用のbase64エンコードスキームがありません。したがって、問題は、どのシステムでバイナリデータをBase64エンコードする必要があるかということです。ウィキペディアには、Base 64の記事内に、さまざまなフォームを説明するすばらしいセクションがあります。

Base 64を返すPBE実装に遭遇する可能性がありますが、その実装では、上記のスキームのどれが使用されているかについては言及されていません。その場合、どのスキームが使用されているかをどうにかして把握する必要があります。それを検索するか、コミュニティに質問するか、ソースを確認するか、すべてが失敗した場合は、出力に対して一連のテストを作成することをお勧めします。

幸い、base 64をデコードしていて、すべての空白を無視している場合は、かなり安全です。一部の実装ではパディングが無視されているため、該当する場合は、デコードする前にパディングを追加してください。

エンコーディングベース64を自分で実行する場合は、空白を出力せず、デフォルトのアルファベット('+'および'/'記号付き)のみを使用し、必要に応じて常にパディングを実行することを強くお勧めします。その後、いつでも結果を分割して非標準の文字(特に、'+'および'/'記号)を置き換えるか、パディングを削除できます。

于 2012-08-05T14:19:33.110 に答える
0

AndoridSDKでJavaを使用していました。私はそのコマンドを見つけました:

String s = Base64.encodeToString(enc, Base64.DEFAULT);

行の折り返しを行いました。LF文字を出力文字列に入れます。

見つけた:

String s = Base64.encodeToString(enc, Base64.NO_WRAP);

LF文字を出力文字列に入れませんでした。

于 2012-08-05T21:10:44.973 に答える