1. ホーム
  2. encoding

[解決済み] Base64エンコーディングの本当の目的とは?

2023-01-30 08:58:20

質問

なぜBase64エンコーディングなのでしょうか?私は初心者ですが、なぜバイトを何か別のものに難読化するのか(暗号化でない限り)本当に理解できていません。私が読んだある本では、Base64エンコーディングはバイナリ送信が不可能な場合に有用であるとありました。例えば、私たちがフォームを投稿するとき、それはエンコードされています。しかし、なぜバイトを文字に変換するのでしょうか?バイトを文字列に変換して、間にスペースを入れるだけではだめなのでしょうか?例えば 00000001 00000004 ? あるいは、単純に 0000000100000004 バイトは常に8のペアで来るので、スペースなしで?

どのように解決するのですか?

Base64 は、コンテンツ自体の損失や変更なしにデータを転送するために、バイナリ データをほとんどすべてのコンピュータ システムに知られている ASCII 文字セットにエンコードする方法です。 例えば、メールシステムはASCII(テキスト)データを想定しているので、バイナリデータを扱うことはできません。そのため、画像や他のファイルを転送しようとすると、データを扱う方法のために破損してしまいます。

注意: base64 エンコーディングは暗号化でもなければ、データをコンパクトにする方法でもありません。実際、base64 エンコードされたデータ片は、元のデータ片の 1.333... 倍の大きさになります。これは、転送中にデータが失われたり変更されたりしないことを保証する方法でしかありません。