ホームページ >よくある問題 >Base64エンコーディングとは何ですか

Base64エンコーディングとは何ですか

coldplay.xixi
coldplay.xixiオリジナル
2021-03-24 11:11:123017ブラウズ

Base64 エンコードは、インターネット上で 8 ビット バイトコードを送信するための最も一般的なエンコード方法の 1 つであり、64 の印刷可能な文字に基づいてバイナリ データを表現する方法です。 MIMEの詳細な仕様を記載した[RFC2045~RFC2049]を参照できます。

Base64エンコーディングとは何ですか

#この記事の動作環境: Windows 7 システム、Dell G3 コンピューター。

Base64 エンコードは、バイナリから文字へのプロセスであり、HTTP 環境でより長い識別情報を転送するために使用できます。 Base64 エンコードは読み取ることができないため、読み取る前にデコードする必要があります。

Base64 上記の利点により、コンピュータのさまざまな分野で広く使用されていますが、出力内容に 2 つ以上の「シンボルクラス」文字 (、/、=) が含まれるため、 、さまざまなアプリケーション シナリオ Base64 のさまざまな「バリアント」が個別に開発されています。 Base64 の出力を統合して正規化するために、Base62x は unsigned の改良版とみなされます。

標準 Base64 は、URL での直接送信には適していません。これは、URL エンコーダが標準 Base64 の "/" 文字と " " 文字を "%XX" の形式に変更し、これらの "The "% ANSI SQL では「%」記号がワイルドカード文字として使用されているため、" 記号はデータベースに保存するときに変換する必要があります。

この問題を解決するには、URL の改良された Base64 エンコーディングを使用できます。これにより、末尾の「=」記号が埋められ、標準 Base64 の「」と「/」がそれぞれ「-」に変更されます。これにより、URL のエンコード、デコード、およびデータベース保存時の変換の必要性がなくなり、その過程でエンコードされた情報の長さの増加が回避され、データベースやフォームなどのオブジェクト識別子の形式が統一されます。

正規表現用の改良された Base64 バリアントもあります。これは、「 " と "/" を "!" と "-" に変更します。これは、" "、"*" およびその前にあるものは IRCu にあるためです。正規表現で使用される [" と "]" は特別な意味を持っている場合があります。

「/」を「_-」または「._」(プログラミング言語で識別子名として使用)、「.-」(XML Nmtoken で使用)、さらには「」に変更するバリアントもいくつかあります。 _:" (XML の名前)。

Base64 では、3 つの 8 ビット バイトごとに 4 つの 6 ビット バイト (3*8 = 4*6 = 24) に変換し、その後 2 つの上位ビット 0 を 6 ビットに追加して 4 つの 8 ビット バイトを形成する必要があります。 、変換された文字列は理論的には元の文字列より 1/3 長くなります。

ルール

このエンコードに関するルール:

①. 3 バイトを 4 バイトに変換します。

②76 文字ごとに改行文字を追加します。

③. 最後のターミネータも処理する必要があります。

変換前 11111111、11111111、11111111 (バイナリ)

変換後 00111111、00111111、00111111、00111111 (バイナリ)

上位 3 バイトは元のテキスト、下位 4 バイトは変換された Base64 エンコードで、最初の 2 ビットは 0 です。

変換後、コード テーブルを使用して必要な文字列 (つまり、最終的な Base64 エンコーディング) を取得します。このテーブルは次のようになります: (RFC2045 からの抜粋)

関連ビデオの推奨事項: PHP プログラミングの入門から習熟まで

以上がBase64エンコーディングとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。