web-dev-qa-db-ja.com

Base 64エンコーディングの目的は何ですか?また、HTTP Basic認証で使用される理由は何ですか?

Base64暗号化を取得しません。

Base64文字列を解読できる場合、その目的は何ですか?

なぜHTTP Basic認証に使用されているのですか?

自分のパスワードがOLLEHに逆変換されたことを誰かに伝えるようなものです。

OLLEHを見ている人は、元のパスワードがHELLOであることを知っています。

124
ajsie

Base64は暗号化ではなく、エンコードです。これは、印刷可能な(テキスト)文字のみを使用してバイナリデータを表す方法です。

HTTP基本認証のウィキペディアページ からこの段落を参照してください:

Base64アルゴリズムを使用してユーザー名とパスワードをエンコードすると、通常は肉眼では読めなくなりますが、エンコードされているのと同じくらい簡単にデコードできます。セキュリティは、エンコード手順の目的ではありません。むしろ、エンコードの目的は、ユーザー名またはパスワードに含まれている可能性のある非HTTP互換文字をHTTP互換文字にエンコードすることです。

241
Matt Bridges

通常、base64エンコーディングと呼ばれますnot暗号化! base64エンコーディングの良い点は、使用可能な文字の限られた共通サブセットのみを使用して(バイナリ)データを表現できることです。1および0の文字列をASCII例。

56
Flexo

Encryption 順番にキー(文字列またはアルゴリズム)が必要解読する;したがって、「暗号」(ルート: 暗号

Encoding 文字コードを別の文字コードに変更/シフト/変更する。この場合、通常のデータのバイトをHTTPを使用して簡単に表現および転送できるようになりました。

30
vol7ron

日常言語では、「コード」は秘密です。科学と工学では、コードは単に何かを書く方法の合意、ルールのセットです。

そのコードはmay秘密です。その場合、暗号化と呼ばれます。しかし、一般的に、コードは秘密ではありません。遺伝コードを取得します。 DNAは4つの異なる塩基(different ACGおよびTから構築されていること、および3つの塩基が1つのアミノ酸を形成していることを単に示しています。 。また、3つの文字がどのアミノ酸を形成するかという表もあります。

このコードについて秘密はありません。

同様に、Base64は秘密のコードではありません。むしろ、1文字あたり6ビットでデータを保存できるコードです(10の異なるエンティティがあるため、10進数システムのベースが10であるように、64の異なるエンティティがあります。つまり、システムの「ベース」は64です。 「数字」と呼ばれます)。

19
Konrad Rudolph

「Base 64 Encoding」を意味する場合があります。暗号化はエンコードとは異なります。

ウィキペディア:暗号化

18
Andy

Base-64エンコードは、MIME仕様の一部です。元のクライアントで使用されているものとは異なるエンコードスキームを使用するホストを介してリレーされた場合に、噛まないデータに対してtransport-safeエンコードを提供します。

インターチューブにはさまざまなホストがあり、データの損失や混乱を招くことなく、7ビットASCII以外のサポートを実際に想定することはできません。

たとえば、IBMメインフレームは、EBCDICと呼ばれるエンコードを使用します(これには、さまざまな種類があります)。コードポイントは、ASCIIベースの「puters」で使用されるコードポイントとはまったく異なります。ASCIIでは、A〜Zの文字は0x41-0x5Aです。 EBCDICでは、文字A-Zは連続した範囲でさえありません:文字A-Iは0xC1-0xC9に、文字J-Rは0xD1-0xD9に、文字S-Zは0xE2-0xE9に住んでいます。

17
Nicholas Carey

既定では、HTTP(Hypertext Transfer Protocol)メッセージのメッセージヘッダーフィールドパラメーターは、ISO-8859-1文字セット以外の文字を運ぶことはできません。

ユーザー名とパスワードに互換性のない文字セットが含まれている場合、HTTPはそれらのテキストを伝送できません。これを防ぐために、ユーザー名とパスワードをbase64でエンコードして、HTTPを介してHTTP互換文字を送信するようにします。詳細については、これを参照してください Basic_access_authentication

0
Varun