Understanding base64 encode in MySQL?


To encode base64, you can use two functionalities −

  • TO_BASE64()
  • FROM_BASE64()

The syntax for base64 encode is as follows −

SELECT TO_BASE64(anyValue) as AnyVariableName;

The syntax for base64 decode is as follows −

SELECT FROM_BASE64(encodeValue) as anyVariableName

To understand the above concept, let us use the above syntax −

Case 1 − Encode

To encode the value, use the to_base64(). The query is as follows −

mysql> select TO_BASE64('Password') as Base64EncodeValue;

Output

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

Case 2 − Decode

To decode the value, use the from_base64(). The query is as follows −

mysql> select FROM_BASE64('UGFzc3dvcmQ=') as Base64DecodeValue;

Output

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

You can understand this by creating a table. The query to create a table is as follows −

mysql> create table Base64Demo
-> (
-> ProductId varchar(100)
-> );
Query OK, 0 rows affected (0.54 sec)

Insert some records in the table using insert command. The query is as follows −

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)

Display all records from the table using select statement. The query is as follows −

mysql> select *from Base64Demo;

Output

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

Here is the query to encode in base64. The query is as follows −

mysql> select TO_BASE64(ProductId) as Base64Encode from Base64Demo;

Output

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

Now let us cross check whether after decoding the first value in the column we are getting the original value or not. The query is as follows −

mysql> select FROM_BASE64('MzIxUHJvZHVjdA==') as DecodeValue;

Output

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

Yes, we are getting the initial value.

Updated on: 25-Jun-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements