そこにある最初のサンプルは無効なbase64です。
ウィキから取得:
エンコードするバイト数が3で割り切れない場合(つまり、最後のブロックに1バイトまたは2バイトの入力しかない場合)、次のアクションが実行されます。値がゼロのバイトを追加して3バイトにします。 、base64への変換を実行します。有効な入力バイトが1つしかない場合は、最初の2つのbase64桁のみが選択され、重要な入力バイトが2つある場合は、最初の3つのbase64桁が選択されます。'='文字を追加して、最後のブロックに4つのbase64文字を含めることができます。
http://en.wikipedia.org/wiki/Base64#Examples
編集:
RFC 4648から取得:
エンコードされるデータの最後で使用可能なビットが24ビット未満の場合、特別な処理が実行されます。フルエンコーディングクォンタムは
、常に数量の最後に完了します。
入力グループで使用可能な入力ビットが24未満の場合、値がゼロのビットが
(右側に)追加され、6ビットグループの整数が形成されます。データの最後のパディング
は、「=」文字を使用して実行されます。
4 x 8ビット(=の)(の最後にあるsample
)は24ビットを超えるため、少なくとも不要です。(データ型が何であるかsample
はわかりませんが、サイズ×文字数を24で割った値を調べてください)
あなたの特定についてsample
:
base-encodingは24ビットチャンクで読み取り、文字列を24ビットチャンクに分割した後に文字列の残りを「サイズ24」にするために、ベースの文字列の最後に「=」のパディング文字のみが必要です。デコーダー。文字列の最後にある====は24ビットを超えるため、役に立たないため、無効です。