# Base64 encoding and decoding using Qt 5 framework

Hi everyone!

In one of my previous posts, we had learnt how to configure and setup Qt for Windows. Base64 is basically a method using which we can encode binary data into a character set in order to transmit the data without any loss or modification of the contents. It is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.

Base64-encoding is a way to encode 8 bit character data in a series of 6 bit characters. This was mostly used in transferring of data across 6 or 7 bit connections. On the other hand Base64-decoding helps us to get back the original text. Through this post, we will learn how to use the Qt framework to implement Base64 encoding and decoding.

Pre-requisites: Qt creator for Windows (64 bit), MinGW or VS compiler

Launch Qt Creator and create a new Qt console application project called QtEncodingExample. Choose the default Desktop kit and add the following code in the main.cpp file!

main.cpp

#include <QCoreApplication>
#include <QString>
#include <QDebug>
#include <QByteArray>

QString base64_encode(QString string);
QString base64_decode(QString string);

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

QString srcString = "Hello";
QString encodedString = base64_encode(srcString);
QString decodedString = base64_decode(encodedString);

qDebug() << "Encoded string is" << encodedString;
qDebug() << "Decoded string is" << decodedString;
return a.exec();
}

QString base64_encode(QString string){
QByteArray ba;
ba.append(string);
return ba.toBase64();
}

QString base64_decode(QString string){
QByteArray ba;
ba.append(string);
return QByteArray::fromBase64(ba);
}


.pro file

QT  += core
QT  -= gui
TARGET = QtEncodingExample
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app
SOURCES += main.cpp



Save all changes. Build and run the application. If no errors occur, you should see the following output!