Decoding base64 in android

How to Encode and Decode Image in Base64 in Android?

Here, we are going to make an application of the “Encoding-Decoding” of an image. By making this application we will be able to learn that how we can encode an image in Base64. We will also be decoding our image with help of a button.

Prerequisite:

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.

Before proceeding with this application you should be aware of Base64 in java. If you are not aware of it, use Basic Type Base64 Encoding and Decoding in Java.

What we are going to build in this article?

In this application, we will be using two buttons Encode and Decode to perform their respective operations. Moreover, we will be using a textView to display encoded text and finally an imageView to display the decoded image. Note that we are going to implement this application using Java language. A sample video is given below to get an idea about what we are going to do in this article.

Step by Step Implementation

Step 1: Creating a new project

  • Open a new project.
  • We will be working on Empty Activity with language as Java. Leave all other options unchanged.
  • You can change the name of the project at your convenience.
  • There will be two default files named activity_main.xml and MainActivity.java.
Читайте также:  Как остановить сервисы гугл плей андроид

If you don’t know how to create a new project in Android Studio then you can refer to How to Create/Start a New Project in Android Studio?

Step 2: Navigate to app > Manifests > AndroidManifest.xml file and add the following permission to it

Step 3: Working with the activity_main.xml file

Here we will design the user interface of our application. We will be using the following components for their respective works:

  • TextView – to show the encoded text
  • ImageView – to show the decoded image.
  • Button – to encode or decode the image on click.

Источник

Base64.Decode Method

Definition

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Overloads

Decode the Base64-encoded data in input and return the data in a new byte array.

Decode the Base64-encoded data in input and return the data in a new byte array.

Decode the Base64-encoded data in input and return the data in a new byte array.

Decode(Byte[], Base64Flags)

Decode the Base64-encoded data in input and return the data in a new byte array.

Parameters

the input array to decode

controls certain features of the decoded output. Pass DEFAULT to decode standard Base64.

Returns

Exceptions

if the input contains incorrect padding

Remarks

Portions of this page are modifications based on work created andВ shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Applies to

Decode(String, Base64Flags)

Decode the Base64-encoded data in input and return the data in a new byte array.

Parameters

the input String to decode, which is converted to bytes using the default charset

controls certain features of the decoded output. Pass DEFAULT to decode standard Base64.

Returns

Exceptions

if the input contains incorrect padding

Remarks

Portions of this page are modifications based on work created andВ shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Читайте также:  Аналог virtualbox для андроид

Applies to

Decode(Byte[], Int32, Int32, Base64Flags)

Decode the Base64-encoded data in input and return the data in a new byte array.

Parameters

the data to decode

the position within the input array at which to start

the number of bytes of input to decode

controls certain features of the decoded output. Pass DEFAULT to decode standard Base64.

Returns

Exceptions

if the input contains incorrect padding

Remarks

Portions of this page are modifications based on work created andВ shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Источник

Кодирование и декодирование Java Base64

Как сделать кодирование и декодирование Base64 в Java, используя новые API, представленные в Java 8, а также Apache Commons.

Автор: baeldung
Дата записи

1. Обзор

В этом уроке мы рассмотрим различные утилиты, которые предоставляют функции кодирования и декодирования Base64 в Java.

Мы в основном собираемся проиллюстрировать новые API Java 8 и служебные API, которые выходят из Apache Commons.

Дальнейшее чтение:

Руководство по кодированию/декодированию URL-адресов Java

Хеширование SHA-256 и SHA3-256 в Java

Новое Хранилище Паролей В Spring Security 5

2. Java 8 для базы 64

Java 8 наконец-то добавила возможности Base64 в стандартный API. Это делается через класс утилиты java.util.Base64 .

Давайте начнем с рассмотрения базового процесса кодирования.

2.1. Java 8 Basic Base64

Базовый кодер упрощает работу и кодирует вход как есть, без какого-либо разделения строк.

Выходные данные отображаются на набор символов в A-Za-z0-9+/ набор символов, и декодер отклоняет любой символ за пределами этого набора.

Давайте сначала закодируем простую строку :

Обратите внимание, как мы получаем полный API кодировщика с помощью простого метода GetEncoder() utility.

Теперь давайте расшифруем эту строку обратно в исходную форму:

2.2. Кодировка Java 8 Base64 Без Заполнения

В кодировке Base64 длина выходной кодированной строки должна быть кратна трем. Если нет, то вывод будет дополнен дополнительными символами pad ( = ).

После декодирования эти дополнительные символы заполнения будут отброшены. Чтобы углубиться в заполнение в Base64, ознакомьтесь с этим подробным ответом на Переполнение стека .

Если нам нужно пропустить заполнение вывода — возможно, потому, что результирующая строка никогда не будет декодирована обратно — мы можем просто выбрать кодирование без заполнения :

Читайте также:  Для открывать zip андроид

2.3. Кодировка URL-адресов Java 8

Кодировка URL-адресов очень похожа на базовый кодер, который мы рассмотрели выше. Он использует безопасный алфавит Base64 URL и имени файла и не добавляет никакого разделения строк:

Декодирование происходит во многом таким же образом. Метод утилиты getUrlDecoder() возвращает java.util.Base64.Decoder , который затем используется для декодирования URL-адреса:

2.4. Кодировка MIME Java 8

Давайте начнем с создания некоторого базового ввода MIME для кодирования:

Кодер MIME генерирует выходные данные в кодировке Base64, используя базовый алфавит, но в удобном для MIME формате.

Каждая строка вывода содержит не более 76 символов и заканчивается возвратом каретки, за которым следует перевод строки ( \r\n ):

Метод утилиты getMimeDecoder() возвращает java.util.Base64.Decoder , который затем используется в процессе декодирования:

3. Кодирование/Декодирование С Использованием Кодека Apache Commons

Во-первых, нам нужно определить зависимость commons-codec в pom.xml :

Обратите внимание, что мы можем проверить, были ли выпущены более новые версии библиотеки на Maven Central .

Основным API является класс org.apache.commons.codec.binary.Base64 , который может быть параметризован с помощью различных конструкторов:

  • Base64(boolean urlSafe) создает API Base64, управляя включенным или выключенным режимом URL-safe.
  • Base64 (int lineLength) создает API Base64 в небезопасном для URL режиме и управляет длиной строки (по умолчанию 76).
  • Base64(int lineLength, byte[] LineSeparator) создает API Base64, принимая дополнительный разделитель строк, который по умолчанию является CRLF (“\r\n”).

После создания API Base64 и кодирование, и декодирование довольно просты:

Метод decode() класса Base64 возвращает декодированную строку:

Другим простым вариантом является использование статического API Base64 |/вместо создания экземпляра:

4. Преобразование строки в массив байтов

Иногда нам нужно преобразовать Строку в байт[] . Самый простой способ сделать это-использовать метод String getBytes() :

Лучше также обеспечить кодировку и не зависеть от кодировки по умолчанию, так как она зависит от системы:

Если наша строка Base64 закодирована, мы можем использовать декодер Base64 |:

Мы также можем использовать DatatypeConverter parseBase64Binary() метод :

Наконец, мы можем преобразовать шестнадцатеричную строку в байт[] с помощью метода DatatypeConverter :

5. Заключение

В этой статье объясняются основы кодирования и декодирования Base64 в Java с использованием новых API, представленных в Java 8 и Apache Commons.

Источник

Оцените статью