「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Javaでは、Base64エンコード/デコードを標準APIだけで簡単に扱えます。
ファイルデータやバイナリ情報を文字列として送受信したい場面(API通信・設定値保存・認証情報など)で、Base64は頻繁に利用されます。

本記事では、Java標準のBase64クラスの使い方を中心に、
基本から実務での注意点までをわかりやすく解説します。

Java:Base64のエンコード、デコード


Base64とは?

Base64とは、バイナリデータを英数字のみの文字列に変換するエンコード方式です。

  • バイナリ → テキスト変換

  • 暗号化ではない(可逆変換)

  • メール、HTTP、JSON、XMLなどで安全に扱える

よくある利用シーン

  • 画像・PDFなどのバイナリデータをAPIで送信

  • 認証情報(Basic認証)

  • 設定ファイル・JSON内への埋め込み


JavaでBase64を扱う方法(基本)

Java 8以降では、java.util.Base64 クラスが標準提供されています。


文字列をBase64エンコードする

実行結果例

ポイント

  • 文字コードは必ず StandardCharsets.UTF_8 を指定

  • encodeToString() で文字列として取得可能


Base64文字列をデコードする

実行結果


URLセーフなBase64(URL-safe)

URLやクエリパラメータで使用する場合は、URLセーフ版Base64を使います。

通常版との違い

種類特徴
通常+ / = を含む
URLセーフ- _ を使用

MIME用Base64(改行付き)

メールや長文データ向けのBase64です。

  • 76文字ごとに改行が入る

  • メール本文などで使用される


ファイルをBase64エンコードする例 


よくある注意点・ハマりどころ

① Base64は暗号化ではない

  • 誰でもデコード可能

  • パスワード保存には不向き

② 文字コード不一致

→ 環境依存になるため必ず UTF-8 を指定

③ 改行入りBase64のデコード失敗

  • MIME形式は改行を含む

  • URL/通常デコーダでは失敗することがある


どのBase64エンコーダを使うべき?

用途推奨
通常の文字列・APIgetEncoder()
URL・クエリgetUrlEncoder()
メール・長文getMimeEncoder()

まとめ

  • Java 8以降は java.util.Base64 を使えばOK

  • 外部ライブラリは不要

  • 用途に応じて 通常 / URL / MIME を使い分ける

  • Base64は「変換」であり「暗号」ではない

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x