Base64エンコーディング

Base64エンコーディングツールを使用すると、Base64メソッドで入力したテキストを暗号化できます。必要に応じて、暗号化されたBase64コードをBase64デコードツールでデコードできます。

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

Base64エンコーディングは、一部の制限された文字エンコーディングのみを使用する環境(xml、html、スクリプト、インスタントメッセージングアプリケーションなど、すべての文字コードを使用できるわけではない環境)でバイナリデータを転送できるようにするエンコーディングスキームです。このスキームの文字数は64であり、Base64という単語の64はここから来ています。

Base64エンコーディングを使用する理由

Base64エンコーディングの必要性は、メディアが生のバイナリ形式でテキストベースのシステムに送信されるときに発生する問題に起因します。テキストベースのシステム(電子メールなど)は、バイナリデータを特殊なコマンド文字を含む幅広い文字として解釈するため、転送メディアに送信されるバイナリデータのほとんどは、これらのシステムによって誤って解釈され、送信中に失われたり破損したりします。処理する。

このような送信の問題を回避する方法でこのようなバイナリデータをエンコードする1つの方法は、Base64エンコード形式のプレーンASCIIテキストとして送信することです。これは、プレーンテキスト以外のデータを送信するためにMIME標準で使用される手法の1つです。PHPやJavascriptなどの多くのプログラミング言語には、Base64エンコーディングを使用して送信されたデータを解釈するためのBase64エンコーディングおよびデコーディング機能が含まれています。

Base64エンコーディングロジック

Base64エンコーディングでは、3 * 8ビット= 3バイトで構成される24ビットのデータが6ビットの4つのグループに分割されます。これらの4つの6ビットグループの[0-64]の間の10進値に対応する文字は、Base64テーブルから照合されてエンコードされます。Base64エンコーディングの結果として取得される文字数は、4の倍数である必要があります。4の倍数ではないエンコードされたデータは、有効なBase64データではありません。Base64アルゴリズムでエンコードする場合、エンコードが完了すると、データの長さが4の倍数でない場合、「=」(等しい)文字が4の倍数になるまでエンコードの最後に追加されます。たとえば、エンコードの結果として10文字のBase64エンコードデータがある場合は、最後に2つの「==」を追加する必要があります。

Base64エンコーディングの例

たとえば、3つのASCII番号155、162、および233を取り上げます。これらの3つの番号は、100110111010001011101001のバイナリストリームを形成します。画像などのバイナリファイルには、数万または数十万の0と1で機能するバイナリストリームが含まれています。Base64エンコーダーは、バイナリストリームを6文字のグループに分割することから始まります:100110 111010001011101001。これらのグループのそれぞれは、番号38、58、11、および41に変換されます。6文字のバイナリストリームは、バイナリ(または基本)間で変換されます。2)2進配列の1で表される各値を位置の二乗で二乗することにより、10進数(基数10)の文字に変換します。右から左に移動してゼロから開始すると、バイナリストリームの値は2 ^ 0、2 ^ 1、2 ^ 2、2 ^ 3、2 ^ 4、2 ^の順になります。 5.5。

これを見る別の方法があります。左から始めて、各位置は1、2、4、8、16、および32の価値があります。スロットに2進数の1がある場合は、その値を追加します。スロットに0がある場合、あなたは行方不明です。バイナリ配列100110は38になります:0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 +2小数+4 + 0 + 0 +32。Base64エンコーディングはこのバイナリ文字列を受け取り、それを6ビット値38、58、11、および41に分割します。最後に、これらの数値はBase64エンコーディングテーブルを使用してASCII文字に変換されます。