Base64エンコード/デコード
テキストをBase64にエンコード、またはBase64をテキストにデコード — UTF-8対応、すべてブラウザ内で完結。
933回閲覧
Base64が実際にしていること
Base64は、バイナリデータを64種類の印字可能な文字(A-Z、a-z、0-9、+、/)で表現する仕組みです。これにより、JSONペイロード、data: URI、Basic認証ヘッダー、メールの添付ファイルなど、本来テキスト向けに作られた経路をデータが通過できるようになります。3バイトごとに4文字に変換されるため、出力サイズは約33%増加し、末尾は=で埋められます。このツールはUnicodeを正しく処理します(まず適切にUTF-8エンコードするため)、そのため「çğü 😀」のような文字列も壊れずに往復できます — 単純なbtoa()ではエラーになってしまう例です。
Base64は暗号化ではありません — 秘匿性が一切ない、可逆的な表現方法にすぎません。機密性が必要なものには本物の暗号化が必要で、Base64はバイト列をテキストとして安全に扱えるようにするだけです。ここでの処理はすべてブラウザ内のローカルで行われ、入力内容が端末の外に送信されることはありません。
よくある質問
デコードした結果が文字化けするのはなぜですか?
たいていの場合、入力が正しいBase64ではない(途中で切れている、または+/の代わりにURLセーフな-_文字が使われている)か、元のバイト列がそもそもテキストではなかったことが原因です。このツールはURLセーフな形式も自動的にデコードします。
ファイルもエンコードできますか?
このツールはテキスト向けです。ファイルの場合はdata: URIという形式を使うのが一般的で、多くの言語で1行で書けます(PHPのbase64_encode(file_get_contents(...))、JSのFileReader.readAsDataURLなど)。
パスワードの保存にBase64は安全ですか?
いいえ — 誰でも簡単に元に戻せてしまいます。HTTP Basic認証はあくまで転送時の形式整えのために使っているだけで、秘匿性はTLSに依存しています。パスワードはハッシュ化して保存してください(bcrypt/argon2など)、Base64のままでは絶対に保存しないでください。
関連ツール
問題を報告
Base64エンコード/デコード