あなたは1件の記事Base64で、シンプルを知ってもらいます!

BASE64は64の任意のバイナリデータによって表される文字です。

#Base64でエンコードするテーブル(標準)

私はこれらの、AZ、AZ、0-9、およびいくつかの他の特殊文字から、我々はすべてのASCIIコードを知っていると信じて文字が示す数だけを持っています

同様にBase64では、このようなコードを持っています。

64文字の範囲 "AZ"、 "AZ"、 "0-9"、 "+"、 "/" 合計。

我々は、テーブルを見て与え、これは、ASCIIエンコーディングとより、唯一の64よりも簡単です

ここに画像を挿入説明

インデックスは0から始まっているので、最終的なインデックスが63です。

使用

  • Base64エンコードは、デジタル署名証明書、クッキーコンテンツおよびオンようにコンテンツの小片に適しています。

  • ウェブ上の転送写真:
    コード化された画像は、文字がします+し、/変更された-_そう64の文字は、エスケープ文字ではありません(カスタムコードセット)
    我々は、HTMLテキストで、2値画像Base64でエンコードされたフォーマットに変換することができるように。

#コーディングプロセス

ここでは、バイナリをBASE64に変換する方法を見てみましょう。

  • 3バイト(のバイナリデータの処理、各集合b1 b2 b2群4(として分類)、3x8 = 24ビットの合計n1 n2 n3 n4)、それぞれ正確に6ビット。
    ここに画像を挿入説明

我々はそれを知っています、6ビットの大きさは2進数0〜64の小数範囲に変換バックあります

このように、我々は各6ビットbase64エンコード進数との対応テーブルを置くことができます!

プロセスフロー#

  1. ASCIIコードにすべての文字;
    のように:A⇒65
  2. ASCIIコードは、8ビットのバイナリに変換されます。
    例:65⇒0100 0001
  3. 24ビットのバイナリ三つのグループ(0未満バックフィルでは3個)に正規化し、次いで6の4グループに分け、
    として:0100 00010100 0001 0000 0000 0000 00008 0の二つの補数
    010000010000000000000000
  4. 統一された2個の6ビットのバイナリ補数フロント8 0を収集し;
    そのような010000とおり010000000000、、000000
    00010000000100000000000000000000
  5. 10進数補数バイナリ0の後; 例えば:
    、、⇒16、16、0,000010000000100000000000000000000
  6. BASE64は、対応する小数Base64エンコードテーブルから取得コードする;
    ような:16、16、0,0
    ⇒Q、Q、0,0

詳細:

  1. バッファへのデータの3つのバイトは、24ビット、上位バイトを占有する最初のを持って変換。
  2. 不十分なデータの3Byte目ワードは、バッファ内のゼロでビットを残り。次いで、6「ビットを取って、それぞれの場合に、選択されたルックアップテーブルに従って符号化された出力として文字に対応する値を選択します。
  3. 入力データ変換のすべてが完了するまで継続します。
  4. コード結果の後、最後の残りの2つのデータ入力に加え、「=」であれば、
  5. 最後に残りの1つの入力データ、符号化結果プラス2「=」であれば、
  6. あなたが任意のデータを休まない場合、我々はデータ削減の正当性を確保することができますので、私たちは、何も追加しないでください。

8 0の2つのフロントアップので、

したがって、最終的な出力:QQ==

ここに画像を挿入説明

#説明

  • Base64でエンコードされたバイナリデータエンコーディング4バイト3バイトのテキストデータ、長さが33%増加するだろう、エンコードされたテキストデータの利点は、メッセージボディ、ウェブページに直接表示することができます。

  • Base64では、暗号化があまりにも、カスタムコード表ならば、使用することはできませんルックアップテーブルによって符号化方式です。

公開された501元の記事 ウォンの賞賛112 ・は 20000 +を見て

おすすめ

転載: blog.csdn.net/LawssssCat/article/details/104854281