Base64 とは?
データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。具体的には、A–Z, a–z, 0–9 までの62文字と、記号2つ (+, /)、さらにパディング(余った部分を詰める)のための記号として = が用いられる。この変換によって、データ量は4/3(約133%)になる。また、MIMEの基準では76文字ごとに改行コードが入るため、この分の2バイトを計算に入れるとデータ量は約137%となる。
Base64でエンコードされたリソースをHTML、XML、およびCSSファイルに直接埋め込みます。
変換形式
Base64変換の手順を以下に挙げる。
1、元データを6ビットずつに分割。(6ビットに満たない分は0を追加して6ビットにする)
2、各6ビットの値を変換表を使って4文字ずつ変換。(4文字に満たない分は = 記号を追加して4文字にする)
変換例
元データ
(tsukaiyasui.com)
->
16進
(46 72 65 65 42 61 73 65 36 34 65 6e 63 6f 64 65 72)
->
2進
(01000110 01110010 01100101 01100101 01000010 01100001 01110011 01100101 00110110 00110100 01100101 01101110 01100011 01101111 01100100 01100101 01110010)
->
6ビットずつに分割
(010001 100111 001001 100101 011001 010100 001001 100001 011100 110110 010100 110110 001101 000110 010101 101110 011000 110110 111101 100100 011001 010111 0010)
->
2ビット余るので、4ビット分0を追加して6ビットにする
(010001 100111 001001 100101 011001 010100 001001 100001 011100 110110 010100 110110 001101 000110 010101 101110 011000 110110 111101 100100 011001 010111 001000)
->
変換表により、4文字ずつ変換
(RnJl ZUJh c2U2 NGVu Y29k ZXI)
->
1文字余るので、1文字分 = 記号を追加して4文字にする
(RnJl ZUJh c2U2 NGVu Y29k ZXI=)
Base64でのエンコーディング
1、元文字列 -> Base64文字列
2、ファイル -> Base64文字列
参考サイト(Base64でのファイルエンコーディング可能)