← ハシトシステム トップ English ツール ブログ
生成
Base64は暗号化ではありません。Basic認証の資格情報は復号できる形で送られるため、必ずHTTPSで使ってください。入力した値はこのページから送信されません。
デコード

受け取った Authorization: Basic ... の値を貼り付けると、ユーザー名とパスワードに戻します。「Basic 」は付いていても付いていなくても構いません。

Basic認証ヘッダーの中身

組み立て方(RFC 7617)

ユーザー名とパスワードを : でつなぎ、その文字列をBase64で符号化して Basic の後ろに置きます。userpass なら user:pass を符号化した dXNlcjpwYXNz になり、ヘッダーは Authorization: Basic dXNlcjpwYXNz です。ユーザー名にコロンは使えません。最初のコロンが区切りとして解釈されるためで、パスワード側にコロンが入るのは問題ありません。

401 との対応(WWW-Authenticate)

サーバーは保護された資源に対して 401WWW-Authenticate: Basic realm="..." を返し、クライアントはそれを見て Authorization を付けて再送します。ツールやスクリプトから叩くときは、401を待たずに最初からヘッダーを付けても構いません。realm はどの資格情報を使うかの目印で、認証の可否には影響しません。

文字コードの扱い

このツールはUTF-8としてBase64にします。RFC 7617ではサーバーが charset="UTF-8" を示せることになっていますが、非ASCIIを含む資格情報の解釈はサーバー実装によって差があります。日本語や記号を含むパスワードで認証が通らない場合は、まずASCIIだけの値で切り分けてください。

貼り付け先ごとの形

使う場所
HTTPリクエストAuthorization: Basic dXNlcjpwYXNz
curl(ヘッダー指定)curl -H 'Authorization: Basic dXNlcjpwYXNz' https://example.com/api
curl(-u 指定)curl -u 'user:pass' https://example.com/api
fetch(JavaScript)fetch(url, { headers: { Authorization: 'Basic dXNlcjpwYXNz' } })

curl の -u は同じヘッダーを内部で組み立てます。シェルの履歴やCIのログに資格情報が残る点は、どの書き方でも同じです。恒久的に使う値は環境変数やシークレット管理に置いてください。

よくある質問(FAQ)

Basic認証のAuthorizationヘッダーはどう作りますか?

ユーザー名とパスワードをコロンでつないだ文字列をBase64で符号化し、先頭に「Basic 」を付けます。user と pass なら user:pass をBase64にした dXNlcjpwYXNz を使い、Authorization: Basic dXNlcjpwYXNz となります。暗号化ではなく単なる符号化です。

Base64は暗号化ですか?

いいえ。Base64は誰でも復号できる符号化で、秘匿性はありません。Basic認証の資格情報は実質的に平文で送られるため、HTTPSでない通信では盗聴で読み取られます。Basic認証を使う場合はTLSを必須にしてください。

ユーザー名やパスワードに日本語や記号を使えますか?

このツールはUTF-8として符号化します。RFC 7617ではサーバーが charset="UTF-8" を示せることになっていますが、実際の解釈はサーバー実装によって異なります。ユーザー名にコロンを含めることはできません(区切り文字として解釈されます)。