Base64 인코딩하는 방법과 필요성

  • 3 minutes to read

C# 교과서에서 다루지 않았거나 간단히 지나친 내용을 중심으로, 실무에서 유용한 주제들을 하나씩 자세히 살펴보고 있습니다. 이번에는 그중 하나로, Base64 인코딩의 개념과 활용 방법을 간단한 예제와 함께 정리해보겠습니다.

Base64란?

Base64는 이진 데이터를 ASCII 문자열로 안전하게 표현하기 위한 인코딩 방식입니다. 이메일, JSON, XML, URL 등 텍스트 기반 시스템에서는 바이너리 데이터를 직접 사용할 수 없기 때문에, 이를 문자열 형태로 변환해 전달할 필요가 있습니다. Base64는 바로 이런 상황에서 사용됩니다.

예를 들어, 이미지나 파일 데이터를 문자열로 전송하거나, 인증 토큰이나 사용자 정보를 안전하게 네트워크로 전달할 때 Base64 인코딩이 널리 활용됩니다.

왜 Base64 인코딩이 필요한가?

  • 텍스트 전용 환경에서 이진 데이터를 전송할 수 있게 해줍니다.
  • 특수문자나 제어문자로 인해 데이터가 손상되는 것을 방지합니다.
  • HTTP Basic 인증, JWT 토큰 등에서 인증 정보를 안전하게 전달할 수 있습니다.
    • 실제로 필자도 이 경우에 가장 자주 사용하고 있습니다.

C# 코드 예제

C#에서는 Encoding.UTF8Convert.ToBase64String 메서드를 사용해 문자열을 Base64로 쉽게 변환할 수 있습니다.

코드: Base64EncodingExample.cs

using System;
using System.Text;

class Base64EncodingExample
{
    static void Main()
    {
        string originalText = "123456";

        // 문자열을 UTF-8 바이트 배열로 변환한 뒤 Base64로 인코딩
        string base64Encoded = 
            Convert.ToBase64String(Encoding.UTF8.GetBytes(originalText));

        Console.WriteLine($"원본 문자열: {originalText}");
        Console.WriteLine($"Base64 인코딩 결과: {base64Encoded}");
    }
}
원본 문자열: 123456
Base64 인코딩 결과: MTIzNDU2

디코딩 예제

Base64로 인코딩된 문자열은 다시 원래 문자열로 복원할 수 있습니다. 다음과 같이 Convert.FromBase64StringEncoding.UTF8.GetString을 사용합니다.

코드: Base64DecodingExample.cs

using System;
using System.Text;

class Base64DecodingExample
{
    static void Main()
    {
        string base64Encoded = "MTIzNDU2";

        // Base64 문자열을 바이트 배열로 디코딩한 후 UTF-8 문자열로 변환
        string decoded = Encoding.UTF8.GetString(
            Convert.FromBase64String(base64Encoded));

        Console.WriteLine($"디코딩된 문자열: {decoded}");
    }
}
디코딩된 문자열: 123456

마무리

Base64 인코딩은 구조는 간단하지만, 시스템 간 데이터를 안전하게 주고받기 위해 자주 사용되는 기술입니다. 특히 인증 정보나 파일, API 데이터를 다룰 때 실무에서 활용할 일이 많습니다. C#에서는 관련 기능이 기본 라이브러리에 포함되어 있어 쉽게 사용할 수 있으므로, 한 번쯤 익혀두면 유용합니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com