Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 Base64 인코딩과 디코딩 활용법: TO_BASE64()와 FROM_BASE64() 완벽 정리

MySQL에서는 내장 함수 두 가지를 사용해 손쉽게 Base64 인코딩과 디코딩을 처리할 수 있습니다.

  • TO_BASE64() – 값을 Base64로 인코딩
  • FROM_BASE64() – 인코딩된 값을 원래 값으로 디코딩

기본 문법

Base64 인코딩의 기본 문법은 다음과 같습니다.

SELECT TO_BASE64(anyValue) AS AnyVariableName;

Base64 디코딩의 기본 문법은 다음과 같습니다.

SELECT FROM_BASE64(encodeValue) AS anyVariableName;

위 문법을 실제 예제를 통해 자세히 살펴보겠습니다.

사례 1 – 인코딩(Encode)

값을 Base64로 인코딩하려면 TO_BASE64() 함수를 사용합니다. 쿼리는 다음과 같습니다.

mysql> SELECT TO_BASE64('Password') AS Base64EncodeValue;

출력 결과

+-------------------+
| Base64EncodeValue |
+-------------------+
| UGFzc3dvcmQ=      |
+-------------------+
1 row in set (0.00 sec)

'Password'라는 문자열이 'UGFzc3dvcmQ='로 변환된 것을 확인할 수 있습니다.

사례 2 – 디코딩(Decode)

인코딩된 값을 다시 원래 값으로 되돌리려면 FROM_BASE64() 함수를 사용합니다. 쿼리는 다음과 같습니다.

mysql> SELECT FROM_BASE64('UGFzc3dvcmQ=') AS Base64DecodeValue;

출력 결과

+-------------------+
| Base64DecodeValue |
+-------------------+
| Password          |
+-------------------+
1 row in set (0.00 sec)

디코딩 결과 'UGFzc3dvcmQ='가 다시 'Password'로 복원된 것을 확인할 수 있습니다.

테이블을 활용한 실전 예제

이제 테이블을 직접 만들어 실전에서 어떻게 활용되는지 알아보겠습니다. 먼저 테이블 생성 쿼리는 다음과 같습니다.

mysql> CREATE TABLE Base64Demo
-> (
-> ProductId VARCHAR(100)
-> );
Query OK, 0 rows affected (0.54 sec)

INSERT 명령으로 몇 개의 레코드를 추가해 보겠습니다.

mysql> INSERT INTO Base64Demo VALUES('321Product');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT INTO Base64Demo VALUES('Product456');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT INTO Base64Demo VALUES('654Product');
Query OK, 1 row affected (0.15 sec)

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> SELECT * FROM Base64Demo;

출력 결과

+------------+
| ProductId  |
+------------+
| 321Product |
| Product456 |
| 654Product |
+------------+
3 rows in set (0.00 sec)

컬럼 전체를 Base64로 인코딩하기

이제 저장된 ProductId 컬럼의 모든 값을 Base64로 인코딩해 보겠습니다.

mysql> SELECT TO_BASE64(ProductId) AS Base64Encode FROM Base64Demo;

출력 결과

+------------------+
| Base64Encode     |
+------------------+
| MzIxUHJvZHVjdA== |
| UHJvZHVjdDQ1Ng== |
| NjU0UHJvZHVjdA== |
+------------------+
3 rows in set (0.00 sec)

디코딩 검증하기

마지막으로 첫 번째 인코딩 값을 디코딩했을 때 원래 값이 제대로 복원되는지 교차 검증해 보겠습니다.

mysql> SELECT FROM_BASE64('MzIxUHJvZHVjdA==') AS DecodeValue;

출력 결과

+-------------+
| DecodeValue |
+-------------+
| 321Product  |
+-------------+
1 row in set (0.00 sec)

결과적으로 처음 입력했던 '321Product'라는 원래 값이 그대로 복원되었습니다. 이처럼 MySQL의 TO_BASE64()와 FROM_BASE64() 함수를 사용하면 데이터를 간편하게 Base64 형식으로 변환하거나 되돌릴 수 있습니다. 특히 문자열 데이터를 안전하게 전송하거나 저장할 때 유용하게 활용할 수 있습니다.