Base64テキストをエンコード・デコード
どのアルファベット、パディング方式、検証規則が暗黙に選ばれたのかを推測せずに、テキストをBase64へ変換し、元へ戻せます。この決定的な変換ツールはUnicodeをUTF-8として扱い、RFC 4648の標準Base64とURLセーフ版に対応します。不正な復号入力から壊れた文字列を返さず、明確なエラーにします。ブラウザーでの確認にも、再現可能な処理が必要なアプリケーションからのAPI呼び出しにも利用できます。成功時は結果文字列を1つだけ返すため、コピー、保存、比較、後続処理への受け渡しが容易です。
無料で実行
UTF-8テキストを持ち運べるBase64表現へ変換します
通常のテキストを、テキスト専用フィールド、設定値、JSON文書、または連携境界で使えるASCII表現にする場合は、エンコードモードを選択してください。入力文字列は最初にUTF-8バイトへ変換されるため、アクセント付き文字、絵文字、非ラテン文字、改行、句読点も古い1バイト文字集合で欠落せず、一貫して処理されます。その後、RFC 4648に従ってバイトをまとめ、Base64結果を返します。標準版は英数字、プラス、スラッシュを使い、末尾のバイト群が不足すると等号で正規のパディングを付けます。URLセーフ版ではプラスとスラッシュをハイフンとアンダースコアへ置き換え、生成時のパディングを省略します。Base64は暗号化ではありません。値を入手した人は元へ戻せるため、機密データには別途、通信時と保存時の保護が必要です。返却オブジェクトは結果文字列だけを含み、自動処理を簡潔かつ決定的に保ちます。
壊れた入力を受け入れず、厳密にデコードします
入力がすでにBase64で、元のUTF-8テキストを取得する場合はデコードモードを選択してください。選択した方式は検証にも適用されます。標準モードはプラスとスラッシュ、URLセーフモードはハイフンとアンダースコアを許可し、別方式の文字を暗黙に置換しません。パディングが末尾だけにあること、2文字以下であること、符号化長と一致すること、完全なバイトを表現できる長さであることも確認します。未使用の末尾ビットがゼロであるかを検査し、空白は拒否します。最後に、復号したバイト列が有効なUTF-8でなければなりません。バイナリーファイルは正しいBase64でも、このテキスト向け機能には適さない場合があります。その際は代替文字を返さず、入力エラーを返します。問題を連携境界で見えるようにするため、後から破損内容を探すより容易に診断できます。
受信側に合わせて標準版またはURLセーフ版を選びます
適切な方式は、値を受け取るシステムによって決まります。標準Base64は、符号化された文書フィールドや、プラス、スラッシュ、等号を明示する仕様で一般的です。URLセーフBase64は、これらの記号が特別な意味を持つURL、ファイル名、Cookie、トークン構成要素などの用途向けです。url_safeの設定はエンコードとデコードの両方を変えるため、単なる修正スイッチとして使わず、相手が期待するアルファベットに合わせてください。URLセーフ値の復号時は、長さが許す場合に正規のパディング付きと省略形の両方を受け入れ、符号化時は一般的な短い形式にするため省略します。安定した処理では、方式をデータと一緒に保存するか、周辺プロトコルで定義してください。ブラウザーツールは単発確認に便利で、自動処理向けAPIは1回$0.002です。どちらも同じ純粋な変換ロジックを使い、同じ結果を返します。
活用例
JSON連携用のテキストを準備します
外部スキーマが要求するASCII Base64フィールドへUnicodeテキストを変換します。
符号化された設定値を確認します
厳密な検証でBase64を復号し、不正な入力を明確なエラーにします。
URLセーフなトークン要素を作成します
UTF-8テキストをハイフンとアンダースコアの方式で、パディングなしに変換します。
よくある質問
1回の利用料金はいくらですか?
APIは1回$0.002です。ブラウザーの対話版は無料でご利用いただけます。
Base64は暗号化ですか?
いいえ。Base64はバイトを印字可能文字で表すだけで、機密性や認証機能はありません。
Unicodeはどのように処理されますか?
符号化前にテキストをUTF-8バイトへ変換し、復号後のバイトも有効なUTF-8であることを要求します。
URLセーフを有効にすると何が変わりますか?
プラスとスラッシュの代わりにハイフンとアンダースコアを使い、生成時のパディングを省略します。復号時も同じ方式を検証します。
デコード時に拒否される入力は何ですか?
不正な文字、空白、あり得ない長さ、誤ったパディング、ゼロでない末尾ビット、有効なUTF-8にならないバイト列を拒否します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/data/mime-base64-encode-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!","mode":"encode"}'const res = await fetch("https://api.kit.forhosting.com/data/mime-base64-encode-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!",
"mode": "encode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/mime-base64-encode-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!",
"mode": "encode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/mime-base64-encode-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!","mode":"encode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!","mode":"encode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/mime-base64-encode-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello, world!",
"mode": "encode"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.mime_base64_encode_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |