Base64エンコーディングと暗号化
危険なほど一般的な誤解は、Base64がセキュリティを提供するというものです。そうではありません。この違いを理解することは、セキュリティにとって非常に重要です。
Base64は暗号化ではありません
Base64はセキュリティをまったく提供しません。誰でも即座にデコードできます。機密データを「隠す」ためにBase64を使用しないでください。 エンコーディングは互換性のためにデータを変換します。暗号化は、キーなしでは読み取れないようにデータを変換します。Base64はエンコーディングであり、暗号化ではありません。 HTTP基本認証はBase64エンコードされた認証情報を使用します。これらは簡単にデコード可能です—保護にはHTTPSを使用してください。
Base64を使用するタイミング
適切:テキスト形式へのバイナリの埋め込み、データURI、電子メールの添付ファイル、URL安全な送信、バイナリデータのシリアル化。 不適切:パスワードの隠蔽、APIキーの保護、機密データの難読化、データを「読めなく」すること。 Base64は形式変換であり、セキュリティ対策ではありません。
真の暗号化
保存データの場合:キー管理サービスでAES-256-GCMを使用。転送中のデータの場合:TLS/HTTPSを使用。パスワードの場合:bcrypt、scrypt、またはArgon2を使用。 デジタル署名の場合:HMAC-SHA256またはRSA/ECDSAを使用。ランダム生成の場合:暗号的に安全なジェネレーターを使用。 セキュリティには確立されたフレームワークを使用してください。暗号化は複雑です。
ツールを試す
Base64エンコーダー/デコーダー