Base64 Encode および Decode 関数

Base64 は、特定の MIME コンテンツ転送エンコード方式を指します。 Base64 エンコードは、任意のオクテット・シーケンスを、大/小文字の区別が必要な形式 (ただし、可読文字でなくて構わない) で表します。

US-ASCII の 65 文字サブセットが使用され、印刷可能文字を 6 ビットで表現できます。 65 番目の文字「=」は、特殊な処理関数を表すために使用されます。

エンコード・プロセスでは、入力ビットの 24 ビット・グループを、4 つのエンコード文字の出力ストリングとして表します。 左から右へ順に、3 つの 8 ビット入力グループを連結することによって、24 ビットの入力グループが形成されます。 これらの 24 ビットは、4 つの連結された 6 ビット・グループとして扱われ、各グループは base64 アルファベットの単一桁に変換されます。

各 6 ビット・グループは、64 個の印刷可能文字の配列に対する添字として使用されます。 添字によって参照された文字は、出力ストリングに入れられます。

base64 アルファベット

Value Encoding  Value Encoding  Value Encoding  Value Encoding
          0 A            17 R            34 i            51 z
          1 B            18 S            35 j            52 0
          2 C            19 T            36 k            53 1
          3 D            20 U            37 l            54 2
          4 E            21 V            38 m            55 3
          5 F            22 W            39 n            56 4
          6 G            23 X            40 o            57 5
          7 H            24 Y            41 p            58 6
          8 I            25 Z            42 q            59 7
          9 J            26 a            43 r            60 8
         10 K            27 b            44 s            61 9
         11 L            28 c            45 t            62 +
         12 M            29 d            46 u            63 /
         13 N            30 e            47 v
         14 O            31 f            48 w         (pad) =
         15 P            32 g            49 x
         16 Q            33 h            50 y
エンコードされるデータの末尾で使用可能なビット数が 24 ビット未満の場合は、特殊な処理が実行されます。 フル・エンコード量子は常に、数量の終わりで完了します。 入力グループで使用可能な入力ビット数が 24 ビット未満の場合は、6 ビット・グループの整数を形成するために、ゼロ・ビットが (右側に) 追加されます。 データ末尾での埋め込みは、「=」文字を使用して実行されます。 base64 入力はすべてオクテットの整数であるため、起こりうる状況は以下のみです。
  • エンコード入力の最終量子が 24 ビットの整数倍である。 この場合、エンコード出力の最終単位は、「=」の埋め込みのない 4 文字の整数倍になります。
  • エンコード入力の最終量子がちょうど 8 ビットである。 この場合、エンコード出力の最終単位は 2 文字で、その後に 2 つの埋め込み文字「=」が続きます。
  • エンコード入力の最終量子がちょうど 16 ビットである。 この場合、エンコード出力の最終単位は 3 文字で、その後に 1 つの埋め込み文字「=」が続きます。



フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/ref_Base64_Encode_and_Decode_Functions.html