본문으로 건너뛰기
최종 수정: 에

TO_BASE64

설명​

TO_BASE64 함수는 입력 문자열을 Base64로 인코딩된 형식으로 변환합니다. Base64는 출력 가능한 64개의 문자를 기반으로 하는 인코딩 방식으로, 이메일, URL 매개변수, JSON 등과 같이 바이너리 데이터를 지원하지 않는 프로토콜에서 데이터를 전송하는 데 주로 사용됩니다. 이 함수는 RFC 4648 표준을 따르며, 표준 Base64 문자 집합(A-Z, a-z, 0-9, +, /)과 패딩 문자(=)를 사용합니다.

구문​

TO_BASE64(<str>)

매개변수​

매개변수설명
<str>Base64로 인코딩할 문자열입니다. 타입: VARCHAR

반환 값​

Base64로 인코딩된 문자열을 나타내는 VARCHAR 타입을 반환합니다.

인코딩 규칙:

  • 표준 Base64 문자 집합을 사용합니다: A-Z, a-z, 0-9, +, /
  • =를 패딩 문자로 사용하여 출력 길이가 4의 배수가 되도록 합니다
  • UTF-8 멀티바이트 문자를 올바르게 인코딩합니다
  • 출력 문자열에는 출력 가능한 ASCII 문자만 포함됩니다

특수한 경우:

  • 입력이 NULL이면 NULL을 반환합니다
  • 입력이 빈 문자열이면 빈 문자열을 반환합니다
  • UTF-8 문자 인코딩을 자동으로 처리합니다
  • 출력 길이는 항상 입력 바이트 수의 4/3배입니다(4의 배수로 올림)

예제​

  1. 기본 문자 인코딩
SELECT TO_BASE64('1'), TO_BASE64('A');
+----------------+----------------+
| TO_BASE64('1') | TO_BASE64('A') |
+----------------+----------------+
| MQ== | QQ== |
+----------------+----------------+
  1. 여러 문자로 구성된 문자열 인코딩
SELECT TO_BASE64('234'), TO_BASE64('Hello');
+------------------+--------------------+
| TO_BASE64('234') | TO_BASE64('Hello') |
+------------------+--------------------+
| MjM0 | SGVsbG8= |
+------------------+--------------------+
  1. NULL 및 빈 문자열 처리
SELECT TO_BASE64(NULL), TO_BASE64('');
+-----------------+---------------+
| TO_BASE64(NULL) | TO_BASE64('') |
+-----------------+---------------+
| NULL | |
+-----------------+---------------+
  1. 긴 문자열 인코딩
SELECT TO_BASE64('Hello World'), TO_BASE64('The quick brown fox');
+-------------------------+-------------------------------+
| TO_BASE64('Hello World') | TO_BASE64('The quick brown fox') |
+-------------------------+-------------------------------+
| SGVsbG8gV29ybGQ= | VGhlIHF1aWNrIGJyb3duIGZveA== |
+-------------------------+-------------------------------+
  1. 숫자 및 특수 문자
SELECT TO_BASE64('123456'), TO_BASE64('!@#$%^&*()');
+---------------------+------------------------+
| TO_BASE64('123456') | TO_BASE64('!@#$%^&*()') |
+---------------------+------------------------+
| MTIzNDU2 | IUAjJCVeJiooKQ== |
+---------------------+------------------------+
  1. UTF-8 멀티바이트 문자
SELECT TO_BASE64('ṭṛì'), TO_BASE64('ḍḍumai hello');
+-------------------+---------------------------+
| TO_BASE64('ṭṛì') | TO_BASE64('ḍḍumai hello') |
+-------------------+---------------------------+
| 4bmt4bmbw6w= | 4bmN4bmNdW1haSBoZWxsbw== |
+-------------------+---------------------------+
  1. 이메일 주소 인코딩
SELECT TO_BASE64('user@example.com'), TO_BASE64('admin.test@company.org');
+------------------------------+-----------------------------------+
| TO_BASE64('user@example.com') | TO_BASE64('admin.test@company.org') |
+------------------------------+-----------------------------------+
| dXNlckBleGFtcGxlLmNvbQ== | YWRtaW4udGVzdEBjb21wYW55Lm9yZw== |
+------------------------------+-----------------------------------+
  1. JSON 데이터 인코딩
SELECT TO_BASE64('{"name":"John","age":30}'), TO_BASE64('[1,2,3,4,5]');
+--------------------------------------+----------------------+
| TO_BASE64('{"name":"John","age":30}') | TO_BASE64('[1,2,3,4,5]') |
+--------------------------------------+----------------------+
| eyJuYW1lIjoiSm9obiIsImFnZSI6MzB9 | WzEsMiwzLDQsNV0= |
+--------------------------------------+----------------------+
  1. 길이가 다른 문자열과 패딩
SELECT TO_BASE64('a'), TO_BASE64('ab'), TO_BASE64('abc');
+----------------+-----------------+------------------+
| TO_BASE64('a') | TO_BASE64('ab') | TO_BASE64('abc') |
+----------------+-----------------+------------------+
| YQ== | YWI= | YWJj |
+----------------+-----------------+------------------+

키워드​

TO_BASE64, BASE64