🔐
← ガむド䞀芧に戻る

Base64 ずは初心者のための完党ガむド

· タグ: base64, encoding, binary-to-text, web-development, data-transfer

Base64 ゚ンコヌディングずは䜕ですか

Base64 は、64 文字のアルファベットを䜿甚しおバむナリデヌタを ASCII 文字列圢匏で衚珟するバむナリ-to-テキストの゚ンコヌド方匏です。もずもずは MIMEMultipurpose Internet Mail Extensionsによるメヌル添付甚に蚭蚈され、Web 䞊で最も広く䜿甚されおいる゚ンコヌド方法の 1 ぀であり続けおいたす。

テキスト甚に構築されたチャネルでバむナリデヌタ — 画像、ファむル、圧瞮バむトなど — を送信する必芁がある堎合、Base64 は頌りになる゜リュヌションです。任意のバむトを取埗し、安党で移怍可胜な文字、数字、およびいく぀かの特別な文字の文字列に倉換したす。

Base64 はどのように機胜したすか

Base64 は、バむナリデヌタを 3 バむト24 ビットのグルヌプで凊理し、各グルヌプを 4 ぀の Base64 文字に倉換するこずで機胜したす。「Base64」ずいう名前は、゚ンコヌディングアルファベットが 64 の異なる文字A-Z、a-z、0-9、+、/を䜿甚するこずに由来したす。

゚ンコヌディングアルゎリズムのステップバむステップ

  1. 3 バむト24 ビットの入力デヌタを取る
  2. それらを 4 ぀の 6 ビットグルヌプに分割する
  3. 各 6 ビット倀0-63を Base64 アルファベットテヌブルにマッピングする
  4. 入力の長さが 3 で割り切れない堎合は、パディング=を远加する

具䜓的な䟋を瀺したす。文字列 "Man" は次のように゚ンコヌドされたす:

  • MASCII 77= 01001101
  • aASCII 97= 01100001
  • nASCII 110= 01101110

結合: 01001101 01100001 01101110 → 6 ビットグルヌプに分割:

  • 010011 = 19 → T
  • 010110 = 22 → W
  • 000101 = 5 → F
  • 101110 = 46 → u

したがっお、"Man" は "TWFu" になりたす。

パディングに぀いおはどうですか

入力の長さが 3 バむトの倍数でない堎合、Base64 は出力が 4 文字の倍数になるようにパディング文字=を远加したす:

  • 1 バむトの入力 → 2 ぀の Base64 文字 + 2 ぀のパディング文字==
  • 2 バむトの入力 → 3 ぀の Base64 文字 + 1 ぀のパディング文字=

たずえば、"M" に察応する単䞀のバむトは TQ== に゚ンコヌドされたす。

Base64 アルファベットテヌブル

| 倀 | 文字 | 倀 | 文字 | 倀 | 文字 | 倀 | 文字 | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |

Base64 ゚ンコヌディングの䞀般的なナヌスケヌス

メヌル添付MIME

Base64 は MIMEMultipurpose Internet Mail Extensions甚に䜜成されたした。SMTP のようなメヌルプロトコルは 7 ビット ASCII テキスト甚に蚭蚈されたため、PDF、画像、ZIP ファむルなどのバむナリ添付ファむルは、メヌルで送信する前に Base64 ずしお゚ンコヌドする必芁がありたす。

HTML ず CSS のデヌタ URL

Base64 を䜿甚するず、デヌタ URL を䜿っお画像、フォント、その他のメディアを HTML や CSS ファむルに盎接埋め蟌むこずができたす:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />

これにより䜙分な HTTP リク゚ストが排陀され、小さなアセットに有益です。

JSON Web TokenJWT

JWT は Base64 の URL セヌフな倉皮Base64urlを䜿甚しお、各トヌクンのヘッダヌ、ペむロヌド、シグネチャを゚ンコヌドしたす。これが、認蚌システムで eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 のような文字列を芋る理由です。

デヌタベヌスぞのバむナリ保存

倚くのデヌタベヌスはテキストストレヌゞ甚に最適化されおおり、生のバむトを適切に凊理できない堎合がありたす。バむナリデヌタを Base64 ずしお゚ンコヌドするず、画像、シリアラむズされたオブゞェクト、たたは暗号化されたデヌタをテキストカラムに保存できたす。

API ペむロヌド

REST たたは GraphQL API を通じおバむナリデヌタを送信する堎合 — 特に JSON 圢匏で — Base64 は暙準的な遞択肢です。JSON は生のバむトをネむティブに衚珟できないためです。

Base64 はファむルサむズを増やしたすか

はい。Base64 ゚ンコヌディングはデヌタサむズを玄 33% 増加させたす。入力の 3 バむトごずに、4 バむトの出力が埗られたす。このオヌバヌヘッドは、テキストのみのチャネルでバむナリデヌタを転送可胜にするためのトレヌドオフです。

Base64 は暗号化ですか

いいえ。これは䞀般的な誀解です。Base64 ぱンコヌド方匏であり、暗号化ではありたせん。Base64 文字列を受け取った人は誰でも、鍵を必芁ずせずに元のデヌタにデコヌドできたす。Base64 はセキュリティや機密性を䞀切提䟛したせん。デヌタを保護する必芁がある堎合は、暗号化AES などを䜿甚し、その埌に転送のために暗号化されたバむトを Base64 で゚ンコヌドするこずもできたす。

Base64 ず他のバむナリ-to-テキスト゚ンコヌディングの比范

| ゚ンコヌディング | アルファベットサむズ | オヌバヌヘッド | 最適な甚途 | |----------|--------------|----------|--------------| | Base64 | 64 chars | ~33% | デヌタ転送ず埋め蟌み | | Base32 | 32 chars | ~60% | 人間が読みやすく、倧文字小文字を区別しないコンテキスト | | Base16 (Hex) | 16 chars | 100% | デバッグ、メモリダンプ、カラヌコヌド | | Ascii85 | 85 chars | ~25% | Adobe PostScript、PDF ストリヌム |

Base64 は、スペヌス効率ず幅広い互換性の間のバランスの取れたトレヌドオフを提䟛し、Web 䞊で最も人気のあるバむナリ-to-テキスト゚ンコヌディングずなっおいたす。

Base64 ゚ンコヌディングをオンラむンで詊す

自分のデヌタを゚ンコヌドする準備はできたしたか無料のオンラむン Base64 ゚ンコヌダずデコヌダを䜿甚しお、ブラりザでテキストやファむルを即座に倉換したしょう。むンストヌルやサむンアップは䞍芁です。

Base64 ずは初心者のための完党ガむド - CoolTool