可能性の重複:Wikipediaを引用
Why does base64 encoding requires padding if the input length is not divisible by 3?なぜBase64エンコーディングでパディングが使用されますか?
:
デコード時に...これらのパディング文字は、 を廃棄しなければならないが、それでも の計算が可能有効 符号化されていないテキストの長さ、その 入力バイナリの長さは、 の3バイトの倍数ではありません。 ...
しかし、長さの生データの計算は、パディング文字を取り除いても簡単に行うことができます。
| Encoded
|--------------------------------------
Raw Size | Total Size | Real Size | Padding Size
1 | 4 | 2 | 2
2 | 4 | 3 | 1
3 | 4 | 4 | 0
4 | 8 | 6 | 2
5 | 8 | 7 | 1
6 | 8 | 8 | 0
7 | 12 | 10 | 2
8 | 12 | 11 | 1
9 | 12 | 12 | 0
10 | 16 | 14 | 2
.
.
.
だから本当のエンコードされたサイズ(3列目)与えられたあなたは常に正しくサイズは次のようになり埋め何を推測することができます。
PaddedSize = 4 * Ceil (RealSize/4)
だから、理論的には、パディングの必要はありませんでした。アルゴリズムはそれを処理していました。 Base64エンコーディングは一般的な業界標準であることを考慮すると、多くのアプリケーションやデバイスで使用されています。これらは、コード化されたサイズの縮小の恩恵を受けていました。ですから、なぜBase64エンコーディングでパディングが使われるのですか?
@イグナシオ:その質問は非常に説明していない*理由は、しかし。 – BastiBen
私はいくつかの重複が許可されていると思った(http://blog.stackoverflow。十分な情報が質問に入れられていて、別の見解で尋ねられていれば、com/2010/11/dr-strangedupe-or-how-i-learn-to-stop-worrying-and-love-duplication /) – Hemant